pub struct Ref<T: ?Sized + 'static>(/* private fields */);Expand description
Allow references to cross dispatcher boundaries as shown in the following example:
use diskann_benchmark_runner::dispatcher::{Dispatcher1, Ref};
let mut d = Dispatcher1::<*const f32, Ref<[f32]>>::new();
d.register::<_, Ref<[f32]>>("method", |data: &[f32]| data.as_ptr());
let v = vec![1.0, 2.0];
assert_eq!(d.call(&v), Some(v.as_ptr()));Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for Ref<T>where
T: ?Sized,
impl<T> RefUnwindSafe for Ref<T>where
T: RefUnwindSafe + ?Sized,
impl<T> Send for Ref<T>
impl<T> Sync for Ref<T>
impl<T> Unpin for Ref<T>
impl<T> UnwindSafe for Ref<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