#[hackfn]
Fake implementation of std::ops::Fn
for user-defined data types.
Place a #[hackfn]
attribute on an impl block containing a single method to use
that method as the implementation of the function call operator.
[]
= "0.1"
Version requirement: #[hackfn] supports rustc 1.31+
Limitations
-
The function must receive
&self
. Functions that receive&mut self
orself
are not supported. -
The function may not have generic parameters or where-clause.
-
The
Self
type must implementSized
.
Examples
use hackfn;
/// Function object that adds some number to its input.
;
The next example is somewhat more elaborate:
-
Interior mutability can be used to approximate a
FnMut
impl. -
Generic parameters and where-clause are permitted on the impl block (though not on the function).
-
The function may take any number of arguments.
use hackfn;
use Cell;
use Add;
/// Function object that accumulates a pair of values per call.