pub struct MaterializationResponsibilityRef<'mr> {
mr: LLVMOrcMaterializationResponsibilityRef,
_marker: PhantomData<&'mr ()>,
}
Expand description
A reference to a materialization responsibility.
Fields§
§mr: LLVMOrcMaterializationResponsibilityRef
§_marker: PhantomData<&'mr ()>
Implementations§
Source§impl<'mr> MaterializationResponsibilityRef<'mr>
impl<'mr> MaterializationResponsibilityRef<'mr>
Sourcepub unsafe fn from_inner(mr: LLVMOrcMaterializationResponsibilityRef) -> Self
pub unsafe fn from_inner(mr: LLVMOrcMaterializationResponsibilityRef) -> Self
Wraps a raw pointer.
Sourcepub fn get_target_dylib(&self) -> JITDylibRef
pub fn get_target_dylib(&self) -> JITDylibRef
Returns the target JITDylib that these symbols are being materialized into.
Sourcepub fn get_execution_session(&self) -> ExecutionSessionRef<'mr>
pub fn get_execution_session(&self) -> ExecutionSessionRef<'mr>
Returns the ExecutionSession for this MaterializationResponsibility.
Sourcepub fn get_symbols(&self) -> SymbolFlagsMapPairs<'mr>
pub fn get_symbols(&self) -> SymbolFlagsMapPairs<'mr>
Returns the symbol flags map for this responsibility instance.
Sourcepub fn get_initializer_symbol(&self) -> Option<SymbolStringPoolEntry>
pub fn get_initializer_symbol(&self) -> Option<SymbolStringPoolEntry>
Returns the initialization pseudo-symbol, if any.
This symbol will also be present in the SymbolFlagsMap for this MaterializationResponsibility object.
Sourcepub fn get_requested_symbols(&self) -> &[SymbolStringPoolEntry]
pub fn get_requested_symbols(&self) -> &[SymbolStringPoolEntry]
Returns the names of any symbols covered by this MaterializationResponsibility object that have queries pending.
This information can be used to return responsibility for unrequested symbols back to the JITDylib via the delegate method.
Sourcepub fn notify_resolved(
&self,
syms: &[SymbolFlagsMapPair],
) -> Result<(), LLVMString>
pub fn notify_resolved( &self, syms: &[SymbolFlagsMapPair], ) -> Result<(), LLVMString>
Notifies the target JITDylib that the given symbols have been resolved.
Sourcepub fn notify_emitted(&self) -> Result<(), LLVMString>
pub fn notify_emitted(&self) -> Result<(), LLVMString>
Notifies the target JITDylib (and any pending queries on that JITDylib) that all symbols covered by this MaterializationResponsibility instance have been emitted.
Sourcepub fn fail_materialization(&self)
pub fn fail_materialization(&self)
Notify all not-yet-emitted covered by this MaterializationResponsibility instance that an error has occurred.
This will remove all symbols covered by this MaterializationResponsibility from the target JITDylib, and send an error to any queries waiting on these symbols.
Sourcepub fn replace(&self, mu: MaterializationUnit) -> Result<(), LLVMString>
pub fn replace(&self, mu: MaterializationUnit) -> Result<(), LLVMString>
Transfers responsibility to the given MaterializationUnit for all symbols defined by that MaterializationUnit.
This allows materializers to break up work based on run-time information (e.g. by introspecting which symbols have actually been looked up and materializing only those).
Sourcepub fn delegate(
&self,
syms: &[SymbolStringPoolEntry],
) -> Result<Self, LLVMString>
pub fn delegate( &self, syms: &[SymbolStringPoolEntry], ) -> Result<Self, LLVMString>
Delegates responsibility for the given symbols to the returned materialization responsibility. Useful for breaking up work between threads, or different kinds of materialization processes.
The caller retains responsibility of the the passed MaterializationResponsibility.
Auto Trait Implementations§
impl<'mr> Freeze for MaterializationResponsibilityRef<'mr>
impl<'mr> RefUnwindSafe for MaterializationResponsibilityRef<'mr>
impl<'mr> !Send for MaterializationResponsibilityRef<'mr>
impl<'mr> !Sync for MaterializationResponsibilityRef<'mr>
impl<'mr> Unpin for MaterializationResponsibilityRef<'mr>
impl<'mr> UnwindSafe for MaterializationResponsibilityRef<'mr>
Blanket Implementations§
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn 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>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes