pub struct HintRegistry { /* private fields */ }Expand description
Registry for hint handlers keyed by HintId.
Registration is idempotent: the same hint type always hashes to the same id, so a second
call to HintRegistry::register with the same concrete type is a no-op.
Implementations§
Source§impl HintRegistry
impl HintRegistry
pub fn new() -> Self
Sourcepub fn register<T: Hint>(&mut self, handler: T) -> HintId
pub fn register<T: Hint>(&mut self, handler: T) -> HintId
Register a hint, returning its stable HintId. No-op if the same hint is already
registered.
Sourcepub fn shape(&self, hint_id: HintId, dimensions: &[usize]) -> (usize, usize)
pub fn shape(&self, hint_id: HintId, dimensions: &[usize]) -> (usize, usize)
Compute the (n_in, n_out) arity of the hint identified by hint_id.
pub fn execute( &self, hint_id: HintId, dimensions: &[usize], inputs: &[Word], outputs: &mut [Word], )
Trait Implementations§
Auto Trait Implementations§
impl Freeze for HintRegistry
impl !RefUnwindSafe for HintRegistry
impl Send for HintRegistry
impl Sync for HintRegistry
impl Unpin for HintRegistry
impl UnsafeUnpin for HintRegistry
impl !UnwindSafe for HintRegistry
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more