#up #args #fn-onces

已删除 fn_box

将 FnOnces 收入 Box

使用旧 Rust 2015

1.0.5 2015年4月1日
1.0.4 2015年2月12日
1.0.2 2015年1月13日
1.0.1 2014年12月22日

68 in #args

CC0 许可证

3KB
58

Build Status

fn_box

将 FnOnces 收入 Box!

API

trait FnBox<Args, Result = ()> {
  extern "rust-call" fn call_box(self: Box<Self>, args: Args) -> Result;
}

impl<F, Args, Result> FnBox<Args, Result> for F where F: FnOnce<Args, Result> {}

#[cfg(not(when_coherence_is_fixed))]
impl<'a> FnOnce() for Box<FnBox() + 'a> {}

#[cfg(when_coherence_is_fixed)]
impl<'a, Args, Result> FnOnce<Args, Result> for Box<FnBox<Args, Result> + 'a> {}

用法

let hello: Box<FnBox()> = Box::new(move || { println!("hello world!") });
hello();

let plus_one: Box<FnBox(_) -> _> = Box::new(move |x: i32| { x + 1 });
assert_eq!(plus_one.call_box((3,)), 4);

无运行时依赖