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 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 more
sourceimpl 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 more
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 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>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
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 T where
T: Any + ?Sized,
impl<T> Any for T where
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 T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
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 F where
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for F where
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>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
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 SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
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<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more