use rust_codegen::*;
#[test]
fn single_fn() {
let mut scope = Scope::new();
scope
.new_fn("my_fn")
.vis("pub")
.arg("foo", Type::new("uint"))
.ret(Type::new("uint"))
.line("let res = foo + 1;")
.line("res");
let expect = r#"
pub fn my_fn(foo: uint) -> uint {
let res = foo + 1;
res
}"#;
assert_eq!(scope.to_string(), &expect[1..]);
}
#[test]
fn function_with_async() {
let mut scope = Scope::new();
let trt = scope.new_trait("Foo");
let f = trt.new_fn("pet_toby");
f.set_async(true);
f.line("println!(\"petting toby because he is a good boi\");");
let expect = r#"
trait Foo {
async fn pet_toby() {
println!("petting toby because he is a good boi");
}
}"#;
assert_eq!(scope.to_string(), &expect[1..]);
}