pub struct MutRef<T: ?Sized + 'static>(/* private fields */);Expand description
Allow mutable references to cross dispatcher boundaries as shown below.
use diskann_benchmark_runner::dispatcher::{Dispatcher1, MutRef};
let mut d = Dispatcher1::<(), MutRef<Vec<f32>>>::new();
d.register::<_, MutRef<Vec<f32>>>("method", |v: &mut Vec<f32>| v.push(0.0));
let mut v = Vec::new();
d.call(&mut v).unwrap();
assert_eq!(&v, &[0.0]);Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for MutRef<T>where
T: ?Sized,
impl<T> RefUnwindSafe for MutRef<T>where
T: RefUnwindSafe + ?Sized,
impl<T> Send for MutRef<T>
impl<T> Sync for MutRef<T>
impl<T> Unpin for MutRef<T>
impl<T> UnsafeUnpin for MutRef<T>where
T: ?Sized,
impl<T> UnwindSafe for MutRef<T>where
T: UnwindSafe + ?Sized,
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