Permalink
Browse files

upgrade to rust 2018

  • Loading branch information...
poga committed Dec 6, 2018
1 parent 440ee81 commit 4107532256ad60220a7a5eecc74594543582d815
Showing with 80 additions and 51 deletions.
  1. +1 −0 Cargo.toml
  2. +73 −39 src/actor.rs
  3. +1 −1 src/builder.rs
  4. +3 −9 src/lib.rs
  5. +2 −2 src/message.rs
@@ -9,6 +9,7 @@ keywords = ["actix", "actor", "lua"]
categories = ["network-programming", "asynchronous"]
license = "MIT"
exclude = [".gitignore"]
edition = '2018'


[lib]
@@ -1,5 +1,5 @@
use actix::prelude::*;
use actix::ActorContext;
use ::actix::prelude::*;
use ::actix::ActorContext;
use rlua::Error as LuaError;
use rlua::{FromLua, Function, Lua, MultiValue, ToLua, Value};

@@ -9,9 +9,9 @@ use std::str;
use std::time::Duration;
use uuid::Uuid;

use message::LuaMessage;
use crate::message::LuaMessage;

use builder::LuaActorBuilder;
use crate::builder::LuaActorBuilder;

/// Top level struct which holds a lua state for itself.
///
@@ -206,7 +206,8 @@ fn invoke(
recipient_name,
msg,
cb_thread_id,
}).unwrap();
})
.unwrap();

Ok(())
},
@@ -339,7 +340,8 @@ impl Handler<SendAttempt> for LuaActor {
}
};
actix::fut::ok(())
}).wait(ctx);
})
.wait(ctx);

LuaMessage::Nil
}
@@ -353,7 +355,7 @@ mod tests {
use std::time::Duration;
use tokio::prelude::Future;

use builder::LuaActorBuilder;
use crate::builder::LuaActorBuilder;

fn lua_actor_with_handle(script: &str) -> LuaActor {
LuaActorBuilder::new()
@@ -373,7 +375,8 @@ mod tests {
l.map(|res| {
assert_eq!(res, LuaMessage::from(2));
System::current().stop();
}).map_err(|e| println!("actor dead {}", e)),
})
.map_err(|e| println!("actor dead {}", e)),
);

system.run();
@@ -401,14 +404,16 @@ mod tests {
error("foo")
print("after")
"#,
).start();
)
.start();

let l = lua_addr.send(LuaMessage::from(0));
Arbiter::spawn(
l.map(|_| {
// it should panic
System::current().stop();
}).map_err(|e| println!("actor dead {}", e)),
})
.map_err(|e| println!("actor dead {}", e)),
);

system.run();
@@ -422,7 +427,8 @@ mod tests {
r#"
return {x = 1}
"#,
).start();
)
.start();

let l = lua_addr.send(LuaMessage::from(3));
Arbiter::spawn(
@@ -432,7 +438,8 @@ mod tests {

assert_eq!(res, LuaMessage::from(t));
System::current().stop();
}).map_err(|e| println!("actor dead {}", e)),
})
.map_err(|e| println!("actor dead {}", e)),
);

system.run();
@@ -449,7 +456,8 @@ mod tests {
ctx.state.x = ctx.state.x + 1
return ctx.state.x
"#,
).start();
)
.start();

let l = lua_addr.send(LuaMessage::Nil);
Arbiter::spawn(
@@ -460,9 +468,11 @@ mod tests {
l2.map(|res| {
assert_eq!(res, LuaMessage::from(2));
System::current().stop();
}).map_err(|e| println!("actor dead {}", e)),
})
.map_err(|e| println!("actor dead {}", e)),
);
}).map_err(|e| println!("actor dead {}", e)),
})
.map_err(|e| println!("actor dead {}", e)),
);

system.run();
@@ -477,15 +487,17 @@ mod tests {
r#"
ctx.notify(100)
"#,
).on_handle_with_lua(
)
.on_handle_with_lua(
r#"
if ctx.msg == 100 then
ctx.state.notified = ctx.msg
end
return ctx.msg + ctx.state.notified
"#,
).build()
)
.build()
.unwrap()
.start();

@@ -495,7 +507,8 @@ mod tests {
l.map(|res| {
assert_eq!(res, LuaMessage::from(101));
System::current().stop();
}).map_err(|e| println!("actor dead {}", e)),
})
.map_err(|e| println!("actor dead {}", e)),
)
});
Arbiter::spawn(delay.map_err(|e| println!("actor dead {}", e)));
@@ -512,15 +525,17 @@ mod tests {
r#"
ctx.notify_later(100, 1)
"#,
).on_handle_with_lua(
)
.on_handle_with_lua(
r#"
if ctx.msg == 100 then
ctx.state.notified = ctx.msg
end
return ctx.msg + ctx.state.notified
"#,
).build()
)
.build()
.unwrap()
.start();

@@ -530,7 +545,8 @@ mod tests {
l2.map(|res| {
assert_eq!(res, LuaMessage::from(101));
System::current().stop();
}).map_err(|e| println!("actor dead {}", e)),
})
.map_err(|e| println!("actor dead {}", e)),
)
});
Arbiter::spawn(delay.map_err(|e| println!("actor dead {}", e)));
@@ -547,7 +563,8 @@ mod tests {
local id = ctx.new_actor("src/lua/test/test.lua")
return id
"#,
).start();
)
.start();
let l = addr.send(LuaMessage::Nil);
Arbiter::spawn(
l.map(move |res| {
@@ -559,7 +576,8 @@ mod tests {
}

System::current().stop();
}).map_err(|e| println!("actor dead {}", e)),
})
.map_err(|e| println!("actor dead {}", e)),
);

system.run();
@@ -577,11 +595,13 @@ mod tests {
local result = ctx.send(rec, "Hello")
print("new actor addr name", rec, result)
"#,
).on_handle_with_lua(
)
.on_handle_with_lua(
r#"
return ctx.msg
"#,
).build()
)
.build()
.unwrap()
.start();

@@ -591,7 +611,8 @@ mod tests {
l.map(|res| {
assert_eq!(res, LuaMessage::Nil);
System::current().stop();
}).map_err(|e| println!("actor dead {}", e)),
})
.map_err(|e| println!("actor dead {}", e)),
)
});
Arbiter::spawn(delay.map_err(|e| println!("actor dead {}", e)));
@@ -612,7 +633,8 @@ mod tests {
print(result)
return result
"#,
).build()
)
.build()
.unwrap();

let addr = actor.start();
@@ -625,7 +647,8 @@ mod tests {
} else {
unimplemented!()
}
}).map_err(|e| println!("actor dead {}", e)),
})
.map_err(|e| println!("actor dead {}", e)),
);

system.run();
@@ -670,7 +693,8 @@ mod tests {
print("send result", result)
ctx.send("callback", result)
"#,
).build()
)
.build()
.unwrap();

actor.add_recipients("callback", callback_addr.recipient());
@@ -685,7 +709,8 @@ mod tests {
} else {
unimplemented!()
}
}).map_err(|e| println!("actor dead {}", e)),
})
.map_err(|e| println!("actor dead {}", e)),
);

system.run();
@@ -704,11 +729,13 @@ mod tests {
local result = ctx.do_send(rec, "Hello")
print("new actor addr name", rec, result)
"#,
).on_handle_with_lua(
)
.on_handle_with_lua(
r#"
return ctx.msg
"#,
).build()
)
.build()
.unwrap()
.start();

@@ -718,7 +745,8 @@ mod tests {
l.map(|res| {
assert_eq!(res, LuaMessage::Nil);
System::current().stop();
}).map_err(|e| println!("actor dead {}", e)),
})
.map_err(|e| println!("actor dead {}", e)),
)
});
Arbiter::spawn(delay.map_err(|e| println!("actor dead {}", e)));
@@ -736,7 +764,8 @@ mod tests {
r#"
ctx.terminate()
"#,
).on_stopped_with_lua(r#"print("stopped")"#)
)
.on_stopped_with_lua(r#"print("stopped")"#)
.build()
.unwrap()
.start();
@@ -761,15 +790,17 @@ mod tests {
local m = require('lua/test/module')
return m.incr(ctx.msg)
"#,
).build()
)
.build()
.unwrap()
.start();
let l = addr.send(LuaMessage::from(1));
Arbiter::spawn(
l.map(|res| {
assert_eq!(res, LuaMessage::from(2));
System::current().stop();
}).map_err(|e| println!("actor dead {}", e)),
})
.map_err(|e| println!("actor dead {}", e)),
);

system.run();
@@ -785,14 +816,16 @@ mod tests {
"greet",
vm.create_function(|_, name: String| Ok(format!("Hello, {}!", name)))
.unwrap(),
).unwrap();
)
.unwrap();

let addr = LuaActorBuilder::new()
.on_handle_with_lua(
r#"
return greet(ctx.msg)
"#,
).build_with_vm(vm)
)
.build_with_vm(vm)
.unwrap()
.start();

@@ -801,7 +834,8 @@ mod tests {
l.map(|res| {
assert_eq!(res, LuaMessage::from("Hello, World!"));
System::current().stop();
}).map_err(|e| println!("actor dead {}", e)),
})
.map_err(|e| println!("actor dead {}", e)),
);

system.run();
@@ -1,7 +1,7 @@
use std::fs::File;
use std::io::prelude::*;

use actor::LuaActor;
use crate::actor::LuaActor;
use rlua::{Error as LuaError, Lua};

/// `LuaActorBuilder` creates a new `LuaActor` with given Lua script.
@@ -32,22 +32,16 @@
//! [`LuaActor`]: struct.LuaActor.html
//! [`LuaActorBuilder`]: struct.LuaActorBuilder.html
//! [`LuaMessage`]: enum.LuaMessage.html
extern crate actix;
extern crate regex;
extern crate rlua;
extern crate tokio;
extern crate uuid;

#[cfg(test)]
extern crate futures_timer;

mod actor;
mod builder;
mod message;

pub use actor::LuaActor;
pub use builder::LuaActorBuilder;
pub use message::LuaMessage;
pub use crate::actor::LuaActor;
pub use crate::builder::LuaActorBuilder;
pub use crate::message::LuaMessage;

/// Re-export `rlua` interface for library developers
pub mod dev {
Oops, something went wrong.

0 comments on commit 4107532

Please sign in to comment.