Remove unused ConstFn(Once)Closure
structs.
This commit is contained in:
parent
6267c60f6a
commit
d78bc41785
1 changed files with 0 additions and 125 deletions
|
@ -1,56 +1,5 @@
|
||||||
use crate::marker::Destruct;
|
use crate::marker::Destruct;
|
||||||
|
|
||||||
/// Struct representing a closure with owned data.
|
|
||||||
///
|
|
||||||
/// Example:
|
|
||||||
/// ```no_build
|
|
||||||
/// use crate::const_closure::ConstFnOnceClosure;
|
|
||||||
/// const fn imp(state: i32, (arg,): (i32,)) -> i32 {
|
|
||||||
/// state + arg
|
|
||||||
/// }
|
|
||||||
/// let i = 5;
|
|
||||||
/// let cl = ConstFnOnceClosure::new(i, imp);
|
|
||||||
///
|
|
||||||
/// assert!(7 == cl(2));
|
|
||||||
/// ```
|
|
||||||
pub(crate) struct ConstFnOnceClosure<CapturedData, Function> {
|
|
||||||
data: CapturedData,
|
|
||||||
func: Function,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<CapturedData, Function> ConstFnOnceClosure<CapturedData, Function> {
|
|
||||||
/// Function for creating a new closure.
|
|
||||||
///
|
|
||||||
/// `data` is the owned data that is captured from the environment (this data must be `~const Destruct`).
|
|
||||||
///
|
|
||||||
/// `func` is the function of the closure, it gets the data and a tuple of the arguments closure
|
|
||||||
/// and return the return value of the closure.
|
|
||||||
#[allow(dead_code)]
|
|
||||||
pub(crate) const fn new<ClosureArguments, ClosureReturnValue>(
|
|
||||||
data: CapturedData,
|
|
||||||
func: Function,
|
|
||||||
) -> Self
|
|
||||||
where
|
|
||||||
CapturedData: ~const Destruct,
|
|
||||||
Function: ~const Fn(CapturedData, ClosureArguments) -> ClosureReturnValue + ~const Destruct,
|
|
||||||
{
|
|
||||||
Self { data, func }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<CapturedData, ClosureArguments, Function> const FnOnce<ClosureArguments>
|
|
||||||
for ConstFnOnceClosure<CapturedData, Function>
|
|
||||||
where
|
|
||||||
CapturedData: ~const Destruct,
|
|
||||||
Function: ~const Fn<(CapturedData, ClosureArguments)> + ~const Destruct,
|
|
||||||
{
|
|
||||||
type Output = Function::Output;
|
|
||||||
|
|
||||||
extern "rust-call" fn call_once(self, args: ClosureArguments) -> Self::Output {
|
|
||||||
(self.func)(self.data, args)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Struct representing a closure with mutably borrowed data.
|
/// Struct representing a closure with mutably borrowed data.
|
||||||
///
|
///
|
||||||
/// Example:
|
/// Example:
|
||||||
|
@ -112,77 +61,3 @@ where
|
||||||
(self.func)(self.data, args)
|
(self.func)(self.data, args)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Struct representing a closure with borrowed data.
|
|
||||||
///
|
|
||||||
/// Example:
|
|
||||||
/// ```no_build
|
|
||||||
/// use crate::const_closure::ConstFnClosure;
|
|
||||||
///
|
|
||||||
/// const fn imp(state: &i32, (arg,): (i32,)) -> i32 {
|
|
||||||
/// *state + arg
|
|
||||||
/// }
|
|
||||||
/// let i = 5;
|
|
||||||
/// let cl = ConstFnClosure::new(&i, imp);
|
|
||||||
///
|
|
||||||
/// assert!(7 == cl(2));
|
|
||||||
/// assert!(6 == cl(1));
|
|
||||||
/// ```
|
|
||||||
pub(crate) struct ConstFnClosure<'a, CapturedData: ?Sized, Function> {
|
|
||||||
data: &'a CapturedData,
|
|
||||||
func: Function,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a, CapturedData: ?Sized, Function> ConstFnClosure<'a, CapturedData, Function> {
|
|
||||||
/// Function for creating a new closure.
|
|
||||||
///
|
|
||||||
/// `data` is the a mutable borrow of data that is captured from the environment.
|
|
||||||
///
|
|
||||||
/// `func` is the function of the closure, it gets the data and a tuple of the arguments closure
|
|
||||||
/// and return the return value of the closure.
|
|
||||||
#[allow(dead_code)]
|
|
||||||
pub(crate) const fn new<ClosureArguments, ClosureReturnValue>(
|
|
||||||
data: &'a CapturedData,
|
|
||||||
func: Function,
|
|
||||||
) -> Self
|
|
||||||
where
|
|
||||||
Function: ~const Fn(&CapturedData, ClosureArguments) -> ClosureReturnValue,
|
|
||||||
{
|
|
||||||
Self { data, func }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a, CapturedData: ?Sized, Function, ClosureArguments, ClosureReturnValue> const
|
|
||||||
FnOnce<ClosureArguments> for ConstFnClosure<'a, CapturedData, Function>
|
|
||||||
where
|
|
||||||
Function: ~const Fn(&CapturedData, ClosureArguments) -> ClosureReturnValue + ~const Destruct,
|
|
||||||
{
|
|
||||||
type Output = ClosureReturnValue;
|
|
||||||
|
|
||||||
extern "rust-call" fn call_once(mut self, args: ClosureArguments) -> Self::Output {
|
|
||||||
self.call_mut(args)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a, CapturedData: ?Sized, Function, ClosureArguments, ClosureReturnValue> const
|
|
||||||
FnMut<ClosureArguments> for ConstFnClosure<'a, CapturedData, Function>
|
|
||||||
where
|
|
||||||
Function: ~const Fn(&CapturedData, ClosureArguments) -> ClosureReturnValue,
|
|
||||||
{
|
|
||||||
extern "rust-call" fn call_mut(&mut self, args: ClosureArguments) -> Self::Output {
|
|
||||||
self.call(args)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<
|
|
||||||
'a,
|
|
||||||
CapturedData: ?Sized,
|
|
||||||
Function: ~const Fn(&CapturedData, ClosureArguments) -> ClosureReturnValue,
|
|
||||||
ClosureArguments,
|
|
||||||
ClosureReturnValue,
|
|
||||||
> const Fn<ClosureArguments> for ConstFnClosure<'a, CapturedData, Function>
|
|
||||||
{
|
|
||||||
extern "rust-call" fn call(&self, args: ClosureArguments) -> Self::Output {
|
|
||||||
(self.func)(self.data, args)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue