Guest User

Untitled

a guest
May 24th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.66 KB | None | 0 0
  1. macro_rules! helper {
  2. ($name:ident, Write) => {mut $name};
  3. ($name:ident, WriteExpect) => {mut $name};
  4. ($name:ident, WriteStorage) => {mut $name};
  5. ($name:ident, Read) => {$name};
  6. ($name:ident, ReadExpect) => {$name};
  7. ($name:ident, ReadStorage) => {$name};
  8. }
  9.  
  10. macro_rules! system {
  11. ($name:ident = $($cname:ident <- $typ:ident<$life:tt,$ctype:ty>;)* $es:block) => {
  12. struct $name;
  13. impl<'a> System<'a> for $name {
  14. type SystemData = ($( $typ<$life,$ctype>, )*);
  15.  
  16. fn run(&mut self, ($( helper!($cname, $typ),)*): Self::SystemData)
  17. {
  18. $es
  19. }
  20. }
  21. };
  22. }
Add Comment
Please, Sign In to add comment