Struct holochain::core::ribosome::real_ribosome::RealRibosome
source · pub struct RealRibosome {
pub dna_file: DnaFile,
pub zome_types: Arc<GlobalZomeTypes>,
pub zome_dependencies: Arc<HashMap<ZomeName, Vec<ZomeIndex>>>,
}
Expand description
The only RealRibosome is a Wasm ribosome. note that this is cloned on every invocation so keep clones cheap!
Fields§
§dna_file: DnaFile
§zome_types: Arc<GlobalZomeTypes>
Entry and link types for each integrity zome.
zome_dependencies: Arc<HashMap<ZomeName, Vec<ZomeIndex>>>
Dependencies for every zome.
Implementations§
source§impl RealRibosome
impl RealRibosome
sourcepub fn new(dna_file: DnaFile) -> RibosomeResult<Self>
pub fn new(dna_file: DnaFile) -> RibosomeResult<Self>
Create a new instance
pub fn precompiled_module( &self, dylib_path: &PathBuf ) -> RibosomeResult<Arc<Module>>
pub fn runtime_compiled_module( &self, zome_name: &ZomeName ) -> RibosomeResult<Arc<Module>>
pub fn wasm_cache_key(&self, zome_name: &ZomeName) -> Result<[u8; 32], DnaError>
pub fn cache_instance( &self, context_key: u64, instance: Arc<Mutex<Instance>>, zome_name: &ZomeName ) -> RibosomeResult<()>
pub fn build_instance( &self, zome: &Zome<ZomeDef>, context_key: u64 ) -> RibosomeResult<Arc<Mutex<Instance>>>
pub fn instance( &self, call_context: CallContext ) -> RibosomeResult<(Arc<Mutex<Instance>>, u64)>
pub async fn tooling_imports() -> RibosomeResult<Vec<String>>
pub fn get_zome_dependencies( &self, zome_name: &ZomeName ) -> RibosomeResult<&[ZomeIndex]>
pub fn do_wasm_call_for_module<I: Invocation>( &self, call_context: CallContext, invocation: &I, zome: &Zome, to_call: &FunctionName, module: Arc<Module> ) -> Result<Option<ExternIO>, RibosomeError>
pub fn get_const_fn_for_wasm( &self, call_context: CallContext, name: &str, module: Arc<Module> ) -> Result<Option<i32>, RibosomeError>
pub fn get_extern_fns_for_wasm(&self, module: Arc<Module>) -> Vec<FunctionName>
Trait Implementations§
source§impl Clone for RealRibosome
impl Clone for RealRibosome
source§fn clone(&self) -> RealRibosome
fn clone(&self) -> RealRibosome
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for RealRibosome
impl Debug for RealRibosome
source§impl RibosomeT for RealRibosome
impl RibosomeT for RealRibosome
source§fn maybe_call<I: Invocation>(
&self,
host_context: HostContext,
invocation: &I,
zome: &Zome,
to_call: &FunctionName
) -> Result<Option<ExternIO>, RibosomeError>
fn maybe_call<I: Invocation>( &self, host_context: HostContext, invocation: &I, zome: &Zome, to_call: &FunctionName ) -> Result<Option<ExternIO>, RibosomeError>
call a function in a zome for an invocation if it exists if it does not exist then return Ok(None)
source§fn call_zome_function(
&self,
host_access: ZomeCallHostAccess,
invocation: ZomeCallInvocation
) -> RibosomeResult<ZomeCallResponse>
fn call_zome_function( &self, host_access: ZomeCallHostAccess, invocation: ZomeCallInvocation ) -> RibosomeResult<ZomeCallResponse>
Runs the specified zome fn. Returns the cursor used by HDK, so that it can be passed on to source chain manager for transactional writes
source§fn run_post_commit(
&self,
host_access: PostCommitHostAccess,
invocation: PostCommitInvocation
) -> RibosomeResult<()>
fn run_post_commit( &self, host_access: PostCommitHostAccess, invocation: PostCommitInvocation ) -> RibosomeResult<()>
Post commit works a bit different to the other callbacks. As it is dispatched from a spawned task there is nothing to handle any result, good or bad, other than to maybe log some error.
fn dna_def(&self) -> &DnaDefHashed
fn zome_info(&self, zome: Zome) -> RibosomeResult<ZomeInfo>
source§fn get_const_fn(
&self,
zome: &Zome,
name: &str
) -> Result<Option<i32>, RibosomeError>
fn get_const_fn( &self, zome: &Zome, name: &str ) -> Result<Option<i32>, RibosomeError>
Get a value from a const wasm function. Read more
fn call_iterator<I: Invocation>( &self, host_context: HostContext, invocation: I ) -> CallIterator<Self, I>
fn run_genesis_self_check( &self, host_access: GenesisSelfCheckHostAccess, invocation: GenesisSelfCheckInvocation ) -> RibosomeResult<GenesisSelfCheckResult>
source§fn run_validate(
&self,
host_access: ValidateHostAccess,
invocation: ValidateInvocation
) -> RibosomeResult<ValidateResult>
fn run_validate( &self, host_access: ValidateHostAccess, invocation: ValidateInvocation ) -> RibosomeResult<ValidateResult>
Helper function for running a validation callback. Calls
private fn
do_callback!
under the hood.fn run_init( &self, host_access: InitHostAccess, invocation: InitInvocation ) -> RibosomeResult<InitResult>
fn run_entry_defs( &self, host_access: EntryDefsHostAccess, invocation: EntryDefsInvocation ) -> RibosomeResult<EntryDefsResult>
fn run_migrate_agent( &self, host_access: MigrateAgentHostAccess, invocation: MigrateAgentInvocation ) -> RibosomeResult<MigrateAgentResult>
fn zome_types(&self) -> &Arc<GlobalZomeTypes>
fn dna_hash(&self) -> &DnaHash
fn dna_file(&self) -> &DnaFile
fn get_integrity_zome(&self, zome_index: &ZomeIndex) -> Option<IntegrityZome>
fn zomes_to_invoke(&self, zomes_to_invoke: ZomesToInvoke) -> Vec<Zome>
fn zome_name_to_id(&self, zome_name: &ZomeName) -> RibosomeResult<ZomeIndex>
source§fn list_callbacks(&self)
fn list_callbacks(&self)
@todo list out all the available callbacks and maybe cache them somewhere
source§fn list_zome_fns(&self)
fn list_zome_fns(&self)
@todo list out all the available zome functions and maybe cache them somewhere
Auto Trait Implementations§
impl !RefUnwindSafe for RealRibosome
impl Send for RealRibosome
impl Sync for RealRibosome
impl Unpin for RealRibosome
impl !UnwindSafe for RealRibosome
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,
§fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.§impl<T> Upcastable for Twhere
T: Any + Send + Sync + 'static,
impl<T> Upcastable for Twhere T: Any + Send + Sync + 'static,
§fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
§fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref