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<ZomeId>>>,
}
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<ZomeId>>>
Dependencies for every zome.
Implementations
sourceimpl 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 empty(dna_file: DnaFile) -> Self
pub fn 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_name: &ZomeName,
context_key: u64
) -> RibosomeResult<Arc<Mutex<Instance>>>
pub fn instance(
&self,
call_context: CallContext
) -> RibosomeResult<(Arc<Mutex<Instance>>, u64)>
pub fn cranelift() -> Cranelift
pub fn get_zome_dependencies(
&self,
zome_name: &ZomeName
) -> RibosomeResult<&[ZomeId]>
Trait Implementations
sourceimpl Clone for RealRibosome
impl Clone for RealRibosome
sourcefn clone(&self) -> RealRibosome
fn clone(&self) -> RealRibosome
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresourceimpl Debug for RealRibosome
impl Debug for RealRibosome
sourceimpl RibosomeT for RealRibosome
impl RibosomeT for RealRibosome
sourcefn 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)
sourcefn 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
sourcefn 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>
sourcefn 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>
sourcefn 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. Read morefn 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 run_validation_package(
&self,
host_access: ValidationPackageHostAccess,
invocation: ValidationPackageInvocation
) -> RibosomeResult<ValidationPackageResult>
fn zome_types(&self) -> &Arc<GlobalZomeTypes>
fn dna_hash(&self) -> &DnaHash
fn dna_file(&self) -> &DnaFile
fn get_integrity_zome(&self, zome_id: &ZomeId) -> Option<IntegrityZome>
fn zomes_to_invoke(&self, zomes_to_invoke: ZomesToInvoke) -> Vec<Zome> ⓘ
fn zome_name_to_id(&self, zome_name: &ZomeName) -> RibosomeResult<ZomeId>
sourcefn list_callbacks(&self)
fn list_callbacks(&self)
@todo list out all the available callbacks and maybe cache them somewhere
sourcefn 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> Any for Twhere
T: Any + ?Sized,
impl<T> Any for Twhere
T: Any + ?Sized,
fn type_id_compat(&self) -> TypeId
fn type_id_compat(&self) -> TypeId
TODO: once 1.33.0 is the minimum supported compiler version, remove
Any::type_id_compat and use StdAny::type_id instead.
https://github.com/rust-lang/rust/issues/27745 Read more
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.
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn 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> ⓘ
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
sourcefn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
sourcefn 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 morefn 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: 'static + Any + Send + Sync,
impl<T> Upcastable for Twhere
T: 'static + Any + Send + Sync,
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