pub struct Method3<R, A0, A1, A2>{ /* private fields */ }Expand description
§Macro Expansion
pub struct MethodN<R, A0, A1, ...>
where
A0: Map,
A1: Map,
...,
{
f: Box<dyn for<'a0, 'a1, ...> Fn(A0::Type<'a0>, A1::Type<'a1>, ...) -> R>,
_types: std::marker::PhantomData<(A0, A1, ...)>,
}Trait Implementations§
Source§impl<R, T0, T1, T2, A0, A1, A2> Dispatch3<R, T0, T1, T2> for Method3<R, A0, A1, A2>where
T0: Map,
T1: Map,
T2: Map,
A0: Map,
A1: Map,
A2: Map,
for<'a> A0::Type<'a>: DispatchRule<T0::Type<'a>>,
for<'a> A1::Type<'a>: DispatchRule<T1::Type<'a>>,
for<'a> A2::Type<'a>: DispatchRule<T2::Type<'a>>,
impl<R, T0, T1, T2, A0, A1, A2> Dispatch3<R, T0, T1, T2> for Method3<R, A0, A1, A2>where
T0: Map,
T1: Map,
T2: Map,
A0: Map,
A1: Map,
A2: Map,
for<'a> A0::Type<'a>: DispatchRule<T0::Type<'a>>,
for<'a> A1::Type<'a>: DispatchRule<T1::Type<'a>>,
for<'a> A2::Type<'a>: DispatchRule<T2::Type<'a>>,
Source§fn try_match(
&self,
x0: &T0::Type<'_>,
x1: &T1::Type<'_>,
x2: &T2::Type<'_>,
) -> [Result<MatchScore, FailureScore>; 3]
fn try_match( &self, x0: &T0::Type<'_>, x1: &T1::Type<'_>, x2: &T2::Type<'_>, ) -> [Result<MatchScore, FailureScore>; 3]
Invoke
DispatchRule::try_match on each argument/type pair where the type
comes from the backend method. Read moreSource§fn call(&self, x0: T0::Type<'_>, x1: T1::Type<'_>, x2: T2::Type<'_>) -> R
fn call(&self, x0: T0::Type<'_>, x1: T1::Type<'_>, x2: T2::Type<'_>) -> R
Invoke this method with the given types, invoking
DispatchRule::convert
on each argument to the target types of the backend method. Read moreSource§fn signatures(&self) -> [Signature; 3]
fn signatures(&self) -> [Signature; 3]
Return the signatures for each back-end argument type.
Source§fn try_match_verbose<'a, 'a0, 'a1, 'a2>(
&self,
x0: &'a T0::Type<'a0>,
x1: &'a T1::Type<'a1>,
x2: &'a T2::Type<'a2>,
) -> [Result<MatchScore, TaggedFailureScore<'a>>; 3]where
'a0: 'a,
'a1: 'a,
'a2: 'a,
fn try_match_verbose<'a, 'a0, 'a1, 'a2>(
&self,
x0: &'a T0::Type<'a0>,
x1: &'a T1::Type<'a1>,
x2: &'a T2::Type<'a2>,
) -> [Result<MatchScore, TaggedFailureScore<'a>>; 3]where
'a0: 'a,
'a1: 'a,
'a2: 'a,
The equivalent of
Self::try_match, but using the
DispatchRule::try_match_verbose interface. Read moreAuto Trait Implementations§
impl<R, A0, A1, A2> Freeze for Method3<R, A0, A1, A2>
impl<R, A0, A1, A2> !RefUnwindSafe for Method3<R, A0, A1, A2>
impl<R, A0, A1, A2> !Send for Method3<R, A0, A1, A2>
impl<R, A0, A1, A2> !Sync for Method3<R, A0, A1, A2>
impl<R, A0, A1, A2> Unpin for Method3<R, A0, A1, A2>
impl<R, A0, A1, A2> UnsafeUnpin for Method3<R, A0, A1, A2>
impl<R, A0, A1, A2> !UnwindSafe for Method3<R, A0, A1, A2>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> DispatchRule<T> for T
impl<T> DispatchRule<T> for T
Source§type Error = Infallible
type Error = Infallible
Errors that can occur during
convert.Source§fn try_match(_from: &T) -> Result<MatchScore, FailureScore>
fn try_match(_from: &T) -> Result<MatchScore, FailureScore>
Source§fn convert(from: T) -> Result<T, <T as DispatchRule<T>>::Error>
fn convert(from: T) -> Result<T, <T as DispatchRule<T>>::Error>
Perform the actual conversion. Read more
Source§fn description(f: &mut Formatter<'_>, from: Option<&T>) -> Result<(), Error>
fn description(f: &mut Formatter<'_>, from: Option<&T>) -> Result<(), Error>
Write a description of the dispatch rule and outcome to the formatter. Read more
Source§fn try_match_verbose<'a>(
from: &'a From,
) -> Result<MatchScore, TaggedFailureScore<'a>>where
Self: 'a,
fn try_match_verbose<'a>(
from: &'a From,
) -> Result<MatchScore, TaggedFailureScore<'a>>where
Self: 'a,
The equivalent of
try_match but returns a reason for a failed score. Read more