pub trait NativeBridge {
Show 32 methods
// Required methods
fn clock_now_nanos(&self) -> u64;
fn state_get(&mut self, key: &EncodedKey) -> Result<Option<EncodedRow>>;
fn state_get_many(
&mut self,
keys: &[EncodedKey],
) -> Result<Vec<(EncodedKey, EncodedRow)>>;
fn state_set(&mut self, key: &EncodedKey, value: EncodedRow) -> Result<()>;
fn state_remove(&mut self, key: &EncodedKey) -> Result<()>;
fn state_drop(&mut self, key: &EncodedKey) -> Result<()>;
fn state_clear(&mut self) -> Result<()>;
fn state_range(
&mut self,
range: EncodedKeyRange,
) -> Result<Vec<(EncodedKey, EncodedRow)>>;
fn internal_state_get(
&mut self,
key: &EncodedKey,
) -> Result<Option<EncodedRow>>;
fn internal_state_get_many(
&mut self,
keys: &[EncodedKey],
) -> Result<Vec<(EncodedKey, EncodedRow)>>;
fn internal_state_set(
&mut self,
key: &EncodedKey,
value: EncodedRow,
) -> Result<()>;
fn internal_state_remove(&mut self, key: &EncodedKey) -> Result<()>;
fn internal_state_drop(&mut self, key: &EncodedKey) -> Result<()>;
fn internal_state_range(
&mut self,
range: EncodedKeyRange,
) -> Result<Vec<(EncodedKey, EncodedRow)>>;
fn allocate_row_numbers(&mut self, count: u64) -> Result<RowNumber>;
fn store_get(&mut self, key: &EncodedKey) -> Result<Option<EncodedRow>>;
fn store_contains(&mut self, key: &EncodedKey) -> Result<bool>;
fn store_prefix(
&mut self,
prefix: &EncodedKey,
) -> Result<Vec<(EncodedKey, EncodedRow)>>;
fn store_range(
&mut self,
range: EncodedKeyRange,
) -> Result<Vec<(EncodedKey, EncodedRow)>>;
fn catalog_find_namespace(
&mut self,
namespace: NamespaceId,
version: CommitVersion,
) -> Result<Option<Namespace>>;
fn catalog_find_namespace_by_name(
&mut self,
namespace: &str,
version: CommitVersion,
) -> Result<Option<Namespace>>;
fn catalog_find_table(
&mut self,
table: TableId,
version: CommitVersion,
) -> Result<Option<Table>>;
fn catalog_find_table_by_name(
&mut self,
namespace: NamespaceId,
name: &str,
version: CommitVersion,
) -> Result<Option<Table>>;
fn catalog_find_row_shape(
&mut self,
fingerprint: RowShapeFingerprint,
) -> Result<Option<RowShape>>;
fn dictionary_id_by_name(
&mut self,
name: &str,
) -> Result<Option<DictionaryId>>;
fn dictionary_find(
&mut self,
dictionary: DictionaryId,
value: &Value,
) -> Result<Option<DictionaryEntryId>>;
fn dictionary_get(
&mut self,
dictionary: DictionaryId,
id: DictionaryEntryId,
) -> Result<Option<Value>>;
fn state_get_many_visit(
&mut self,
keys: &[EncodedKey],
visit: &mut dyn FnMut(&EncodedKey, &EncodedRow) -> SdkResult<()>,
) -> SdkResult<()>;
fn internal_state_get_many_visit(
&mut self,
keys: &[EncodedKey],
visit: &mut dyn FnMut(&EncodedKey, &EncodedRow) -> SdkResult<()>,
) -> SdkResult<()>;
fn state_range_visit(
&mut self,
range: EncodedKeyRange,
visit: &mut dyn FnMut(&EncodedKey, &EncodedRow) -> SdkResult<()>,
) -> SdkResult<()>;
fn store_range_visit(
&mut self,
range: EncodedKeyRange,
visit: &mut dyn FnMut(&EncodedKey, &EncodedRow) -> SdkResult<()>,
) -> SdkResult<()>;
fn store_prefix_visit(
&mut self,
prefix: &EncodedKey,
visit: &mut dyn FnMut(&EncodedKey, &EncodedRow) -> SdkResult<()>,
) -> SdkResult<()>;
}Required Methods§
fn clock_now_nanos(&self) -> u64
fn state_get(&mut self, key: &EncodedKey) -> Result<Option<EncodedRow>>
fn state_get_many( &mut self, keys: &[EncodedKey], ) -> Result<Vec<(EncodedKey, EncodedRow)>>
fn state_set(&mut self, key: &EncodedKey, value: EncodedRow) -> Result<()>
fn state_remove(&mut self, key: &EncodedKey) -> Result<()>
fn state_drop(&mut self, key: &EncodedKey) -> Result<()>
fn state_clear(&mut self) -> Result<()>
fn state_range( &mut self, range: EncodedKeyRange, ) -> Result<Vec<(EncodedKey, EncodedRow)>>
fn internal_state_get(&mut self, key: &EncodedKey) -> Result<Option<EncodedRow>>
fn internal_state_get_many( &mut self, keys: &[EncodedKey], ) -> Result<Vec<(EncodedKey, EncodedRow)>>
fn internal_state_set( &mut self, key: &EncodedKey, value: EncodedRow, ) -> Result<()>
fn internal_state_remove(&mut self, key: &EncodedKey) -> Result<()>
fn internal_state_drop(&mut self, key: &EncodedKey) -> Result<()>
fn internal_state_range( &mut self, range: EncodedKeyRange, ) -> Result<Vec<(EncodedKey, EncodedRow)>>
fn allocate_row_numbers(&mut self, count: u64) -> Result<RowNumber>
fn store_get(&mut self, key: &EncodedKey) -> Result<Option<EncodedRow>>
fn store_contains(&mut self, key: &EncodedKey) -> Result<bool>
fn store_prefix( &mut self, prefix: &EncodedKey, ) -> Result<Vec<(EncodedKey, EncodedRow)>>
fn store_range( &mut self, range: EncodedKeyRange, ) -> Result<Vec<(EncodedKey, EncodedRow)>>
fn catalog_find_namespace( &mut self, namespace: NamespaceId, version: CommitVersion, ) -> Result<Option<Namespace>>
fn catalog_find_namespace_by_name( &mut self, namespace: &str, version: CommitVersion, ) -> Result<Option<Namespace>>
fn catalog_find_table( &mut self, table: TableId, version: CommitVersion, ) -> Result<Option<Table>>
fn catalog_find_table_by_name( &mut self, namespace: NamespaceId, name: &str, version: CommitVersion, ) -> Result<Option<Table>>
fn catalog_find_row_shape( &mut self, fingerprint: RowShapeFingerprint, ) -> Result<Option<RowShape>>
fn dictionary_id_by_name(&mut self, name: &str) -> Result<Option<DictionaryId>>
fn dictionary_find( &mut self, dictionary: DictionaryId, value: &Value, ) -> Result<Option<DictionaryEntryId>>
fn dictionary_get( &mut self, dictionary: DictionaryId, id: DictionaryEntryId, ) -> Result<Option<Value>>
fn state_get_many_visit( &mut self, keys: &[EncodedKey], visit: &mut dyn FnMut(&EncodedKey, &EncodedRow) -> SdkResult<()>, ) -> SdkResult<()>
fn internal_state_get_many_visit( &mut self, keys: &[EncodedKey], visit: &mut dyn FnMut(&EncodedKey, &EncodedRow) -> SdkResult<()>, ) -> SdkResult<()>
fn state_range_visit( &mut self, range: EncodedKeyRange, visit: &mut dyn FnMut(&EncodedKey, &EncodedRow) -> SdkResult<()>, ) -> SdkResult<()>
fn store_range_visit( &mut self, range: EncodedKeyRange, visit: &mut dyn FnMut(&EncodedKey, &EncodedRow) -> SdkResult<()>, ) -> SdkResult<()>
fn store_prefix_visit( &mut self, prefix: &EncodedKey, visit: &mut dyn FnMut(&EncodedKey, &EncodedRow) -> SdkResult<()>, ) -> SdkResult<()>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".