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

§

type Locked = Locked<'a, B>

source§

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

§

type Locked = Locked<'a, B>

source§

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

§

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

source§

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

§

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

source§

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

§

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

source§

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

§

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

source§

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

§

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

source§

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

§

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

source§

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

§

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

source§

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

§

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

source§

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

§

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