pub trait RuntimeHostContext {
// Required methods
fn with_read_typed_raw(
&self,
record_kind: RecordKind,
sys_id: SysId,
f: &mut dyn FnMut(&[u8]),
) -> Result<bool, RuntimeHostError>;
fn with_read_typed_by_pk_raw(
&self,
record_kind: RecordKind,
pk: &[u8],
f: &mut dyn FnMut(&[u8]),
) -> Result<bool, RuntimeHostError>;
fn create_typed_raw(
&mut self,
record_kind: RecordKind,
init: &mut dyn FnMut(&mut [u8]),
) -> Result<RecordKey, RuntimeHostError>;
fn update_typed_by_pk_raw(
&mut self,
record_kind: RecordKind,
pk: &[u8],
f: &mut dyn FnMut(&mut [u8]),
) -> Result<bool, RuntimeHostError>;
fn delete_by_pk_raw(
&mut self,
record_kind: RecordKind,
pk: &[u8],
) -> Result<bool, RuntimeHostError>;
fn emit_typed_event_raw(
&mut self,
event_kind: u8,
payload: &[u8],
) -> Result<(), RuntimeHostError>;
fn for_each_record_key_raw(
&self,
kind: RecordKind,
f: &mut dyn FnMut(RecordKey),
) -> Result<(), RuntimeHostError>;
// Provided method
fn debug_log(&mut self, _message: String) -> Result<(), RuntimeHostError> { ... }
}Expand description
Object-safe host capability boundary used by runtime plugins.
Engine internals such as runtime_engine::TxAccess stay on the host side and
implement this trait through an adapter. Plugin-facing code should depend on
this capability surface instead of any concrete engine transaction type.
Required Methods§
Sourcefn with_read_typed_raw(
&self,
record_kind: RecordKind,
sys_id: SysId,
f: &mut dyn FnMut(&[u8]),
) -> Result<bool, RuntimeHostError>
fn with_read_typed_raw( &self, record_kind: RecordKind, sys_id: SysId, f: &mut dyn FnMut(&[u8]), ) -> Result<bool, RuntimeHostError>
Reads a record by system id and passes its bytes to f when found.
Sourcefn with_read_typed_by_pk_raw(
&self,
record_kind: RecordKind,
pk: &[u8],
f: &mut dyn FnMut(&[u8]),
) -> Result<bool, RuntimeHostError>
fn with_read_typed_by_pk_raw( &self, record_kind: RecordKind, pk: &[u8], f: &mut dyn FnMut(&[u8]), ) -> Result<bool, RuntimeHostError>
Reads a record by primary-key bytes and passes its bytes to f when found.
Sourcefn create_typed_raw(
&mut self,
record_kind: RecordKind,
init: &mut dyn FnMut(&mut [u8]),
) -> Result<RecordKey, RuntimeHostError>
fn create_typed_raw( &mut self, record_kind: RecordKind, init: &mut dyn FnMut(&mut [u8]), ) -> Result<RecordKey, RuntimeHostError>
Creates a record and initializes its data bytes through init.
Sourcefn update_typed_by_pk_raw(
&mut self,
record_kind: RecordKind,
pk: &[u8],
f: &mut dyn FnMut(&mut [u8]),
) -> Result<bool, RuntimeHostError>
fn update_typed_by_pk_raw( &mut self, record_kind: RecordKind, pk: &[u8], f: &mut dyn FnMut(&mut [u8]), ) -> Result<bool, RuntimeHostError>
Updates a record by primary-key bytes in-place when found.
Sourcefn delete_by_pk_raw(
&mut self,
record_kind: RecordKind,
pk: &[u8],
) -> Result<bool, RuntimeHostError>
fn delete_by_pk_raw( &mut self, record_kind: RecordKind, pk: &[u8], ) -> Result<bool, RuntimeHostError>
Deletes a record by primary-key bytes.
Sourcefn emit_typed_event_raw(
&mut self,
event_kind: u8,
payload: &[u8],
) -> Result<(), RuntimeHostError>
fn emit_typed_event_raw( &mut self, event_kind: u8, payload: &[u8], ) -> Result<(), RuntimeHostError>
Emits an event payload from the current transaction.
Sourcefn for_each_record_key_raw(
&self,
kind: RecordKind,
f: &mut dyn FnMut(RecordKey),
) -> Result<(), RuntimeHostError>
fn for_each_record_key_raw( &self, kind: RecordKind, f: &mut dyn FnMut(RecordKey), ) -> Result<(), RuntimeHostError>
Iterates visible record keys for one record kind.
Provided Methods§
Trait Implementations§
Source§impl TypedTxContext for dyn RuntimeHostContext + '_
Bridge dyn RuntimeHostContext to TypedTxContext so that
command_dispatch!-generated code can operate on plugin-facing host
adapters without requiring engine-internal raw transaction capabilities.
impl TypedTxContext for dyn RuntimeHostContext + '_
Bridge dyn RuntimeHostContext to TypedTxContext so that
command_dispatch!-generated code can operate on plugin-facing host
adapters without requiring engine-internal raw transaction capabilities.