1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#![warn(missing_docs)]
#![doc(html_root_url = "https://docs.rs/boxfnonce/0.1.0")]

//! See `BoxFnOnce` and `SendBoxFnOnce`.

/*
This crate requires:
a) A trait can dispatch through `self: Box<TraitName>` too: The "object-
   safety" RFC[^1] lists the following arguments as "dispatchable":
   `self`, `&self`, `&mut self`, or `self: Box<Self>`
b) If you have a v: Box<T> for a concrete (`Sized`) type T, you can
   extract the boxed value with *t (seems undocumented).

This basically duplicates what Box<FnBox> is doing, but without using
any unstable interface.

[1]: https://github.com/rust-lang/rfcs/blob/master/text/0255-object-safety.md#detailed-design
*/

#[macro_use]
mod macros;

mod traits;

mod no_send;
pub use self::no_send::BoxFnOnce;

mod send;
pub use self::send::SendBoxFnOnce;