pub struct PolydatMatter<'a> { /* private fields */ }Expand description
Typed Polydat matter accepted by both kernel-construction
paths — root and subscope. Opaque externally: the only way
to obtain a PolydatMatter value is via PolydatMatter::builder.
Internally carries one of three input forms — fresh source, pre-parsed statements (the “module parser” output), or a pre-compiled program. The builder validates that exactly one form is provided.
Implementations§
Source§impl<'a> PolydatMatter<'a>
impl<'a> PolydatMatter<'a>
Sourcepub fn builder() -> PolydatMatterBuilder<'a>
pub fn builder() -> PolydatMatterBuilder<'a>
Begin building Polydat matter. The builder is the only
constructor of PolydatMatter; the variants and their
fields are not exposed.
Source§impl PolydatMatter<'_>
impl PolydatMatter<'_>
Sourcepub fn build_under(
self,
parent: &dyn Kernel,
) -> Result<Box<dyn Kernel>, ContractViolation>
pub fn build_under( self, parent: &dyn Kernel, ) -> Result<Box<dyn Kernel>, ContractViolation>
THE subscope-construction path. Per the kernel-construction
invariant, this is how a parent kernel of any engine produces a
child. compile_polydat produces root kernels; everything else
is a subscope and routes here.
A child from source or statements is compiled once and bound on
parent’s engine through the binder every engine shares
(super::ScopeModule::instantiate_under). A child from a
compiled program is bound on that program’s engine
(crate::kernel::bind_under). Cell propagation,
scope-coordinate plumbing, and Rule 2 write-throughs flow from
parent into the returned child.
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for PolydatMatter<'a>
impl<'a> !UnwindSafe for PolydatMatter<'a>
impl<'a> Freeze for PolydatMatter<'a>
impl<'a> Send for PolydatMatter<'a>
impl<'a> Sync for PolydatMatter<'a>
impl<'a> Unpin for PolydatMatter<'a>
impl<'a> UnsafeUnpin for PolydatMatter<'a>
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> 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