Trait Lockable

Source
pub trait Lockable<'invoker, 'buffer, B>
where B: Buffer,
{ type Locked; // Required method fn lock( &self, invoker: &'invoker mut Invoker, buffer: &'buffer mut B, ) -> Self::Locked; }
Expand description

A component that can be given an Invoker and a byte buffer in order to access its methods.

Required Associated Types§

Source

type Locked

The type obtained when locking the component.

Required Methods§

Source

fn lock( &self, invoker: &'invoker mut Invoker, buffer: &'buffer mut B, ) -> Self::Locked

Locks the component so methods can be invoked on it.

The Invoker and a scratch buffer must be provided. They are released and can be reused once the locked value is dropped.

Implementors§

Source§

impl<'a, B: 'a + Buffer> Lockable<'a, 'a, B> for Gpu

Source§

type Locked = Locked<'a, B>

Source§

impl<'a, B: 'a + Buffer> Lockable<'a, 'a, B> for Screen

Source§

type Locked = Locked<'a, B>

Source§

impl<'handle, 'invoker, 'buffer, B: 'buffer + Buffer> Lockable<'invoker, 'buffer, B> for &'handle ReadHandle

Source§

type Locked = LockedReadHandle<'handle, 'invoker, 'buffer, B>

Source§

impl<'handle, 'invoker, 'buffer, B: 'buffer + Buffer> Lockable<'invoker, 'buffer, B> for &'handle WriteHandle

Source§

type Locked = LockedWriteHandle<'handle, 'invoker, 'buffer, B>

Source§

impl<'handle, 'invoker, 'buffer, B: 'buffer + Buffer> Lockable<'invoker, 'buffer, B> for &'handle Snapshot

Source§

type Locked = LockedSnapshot<'handle, 'invoker, 'buffer, B>

Source§

impl<'invoker, 'buffer, B: 'buffer + Buffer> Lockable<'invoker, 'buffer, B> for Eeprom

Source§

type Locked = Locked<'invoker, 'buffer, B>

Source§

impl<'invoker, 'buffer, B: 'buffer + Buffer> Lockable<'invoker, 'buffer, B> for Filesystem

Source§

type Locked = Locked<'invoker, 'buffer, B>

Source§

impl<'invoker, 'buffer, B: 'buffer + Buffer> Lockable<'invoker, 'buffer, B> for Controller

Source§

type Locked = Locked<'invoker, 'buffer, B>

Source§

impl<'invoker, 'buffer, B: 'buffer + Buffer> Lockable<'invoker, 'buffer, B> for Modem

Source§

type Locked = Locked<'invoker, 'buffer, B>

Source§

impl<'invoker, 'buffer, B: 'buffer + Buffer> Lockable<'invoker, 'buffer, B> for Redstone

Source§

type Locked = Locked<'invoker, 'buffer, B>

Source§

impl<'invoker, 'buffer, B: 'buffer + Buffer> Lockable<'invoker, 'buffer, B> for Robot

Source§

type Locked = Locked<'invoker, 'buffer, B>