[−][src]Struct ascesis::CEStructure
A single c-e structure.
Internally, instances of this type own structural information (the
cause and effect polynomials), the intermediate content
representation from which a c-e structure originated (optionally),
and some auxiliary recomputable data. Other properties are
available indirectly: CEStructure
instance owns a
ContextHandle
which resolves to a shared Context
object.
Methods
impl CEStructure
[src]
pub fn new(
ctx: &Arc<Mutex<Context>>,
origin: Rc<dyn ContentFormat + 'static>
) -> CEStructure
[src]
ctx: &Arc<Mutex<Context>>,
origin: Rc<dyn ContentFormat + 'static>
) -> CEStructure
Creates an empty c-e structure in a Context
given by a
ContextHandle
.
See also a specialized variant of this method,
new_interactive()
.
pub fn new_interactive(ctx: &Arc<Mutex<Context>>) -> CEStructure
[src]
Creates an empty c-e structure in a Context
given by a
ContextHandle
, and sets content origin to
InteractiveFormat
.
This is a specialized variant of the new()
method.
pub fn add_causes<'a, I>(
&mut self,
node_id: NodeID,
poly_ids: I
) -> Result<(), AcesError> where
I: IntoIterator + 'a,
<I as IntoIterator>::Item: IntoIterator,
<<I as IntoIterator>::Item as IntoIterator>::Item == &'a NodeID,
[src]
&mut self,
node_id: NodeID,
poly_ids: I
) -> Result<(), AcesError> where
I: IntoIterator + 'a,
<I as IntoIterator>::Item: IntoIterator,
<<I as IntoIterator>::Item as IntoIterator>::Item == &'a NodeID,
Constructs new Polynomial
from a sequence of sequences of
NodeID
s and adds it to causes of a node of this
CEStructure
.
This method is incremental: new polynomial is added to old
polynomial that is already attached to the node_id
as node's
causes (there is always some polynomial attached, if not
explicitly, then implicitly, as the default θ).
pub fn add_effects<'a, I>(
&mut self,
node_id: NodeID,
poly_ids: I
) -> Result<(), AcesError> where
I: IntoIterator + 'a,
<I as IntoIterator>::Item: IntoIterator,
<<I as IntoIterator>::Item as IntoIterator>::Item == &'a NodeID,
[src]
&mut self,
node_id: NodeID,
poly_ids: I
) -> Result<(), AcesError> where
I: IntoIterator + 'a,
<I as IntoIterator>::Item: IntoIterator,
<<I as IntoIterator>::Item as IntoIterator>::Item == &'a NodeID,
Constructs new Polynomial
from a sequence of sequences of
NodeID
s and adds it to effects of a node of this
CEStructure
.
This method is incremental: new polynomial is added to old
polynomial that is already attached to the node_id
as node's
effects (there is always some polynomial attached, if not
explicitly, then implicitly, as the default θ).
pub fn add_from_content(
&mut self,
content: Box<dyn Content + 'static>
) -> Result<(), AcesError>
[src]
&mut self,
content: Box<dyn Content + 'static>
) -> Result<(), AcesError>
Extends this c-e structure with another one, which is created
in the Context
of the old c-e structure from a given
Content
trait object.
pub fn with_content(
self,
content: Box<dyn Content + 'static>
) -> Result<CEStructure, AcesError>
[src]
self,
content: Box<dyn Content + 'static>
) -> Result<CEStructure, AcesError>
Extends this c-e structure with another one, which is created
in the Context
of the old c-e structure from a given
Content
trait object.
pub fn add_from_str<S>(
&mut self,
script: S,
formats: &[Rc<dyn ContentFormat + 'static>]
) -> Result<Rc<dyn ContentFormat + 'static>, Box<dyn Error + 'static>> where
S: AsRef<str>,
[src]
&mut self,
script: S,
formats: &[Rc<dyn ContentFormat + 'static>]
) -> Result<Rc<dyn ContentFormat + 'static>, Box<dyn Error + 'static>> where
S: AsRef<str>,
Extends this c-e structure with another one, which is created
in the Context
of the old c-e structure from a given
textual description.
The script
is interpreted according to an appropriate format
of content description listed in the formats
array.
On success, returns the chosen format as a ContentFormat
trait object.
pub fn add_from_str_as_origin<S>(
&mut self,
script: S,
formats: &[Rc<dyn ContentFormat + 'static>]
) -> Result<(), Box<dyn Error + 'static>> where
S: AsRef<str>,
[src]
&mut self,
script: S,
formats: &[Rc<dyn ContentFormat + 'static>]
) -> Result<(), Box<dyn Error + 'static>> where
S: AsRef<str>,
Extends this c-e structure with another one, which is created
in the Context
of the old c-e structure from a given
textual description.
The script
is interpreted according to an appropriate format
of content description listed in the formats
array.
On success, stores the chosen format as the new content origin.
pub fn from_str<S>(
ctx: &Arc<Mutex<Context>>,
script: S,
formats: &[Rc<dyn ContentFormat + 'static>]
) -> Result<CEStructure, Box<dyn Error + 'static>> where
S: AsRef<str>,
[src]
ctx: &Arc<Mutex<Context>>,
script: S,
formats: &[Rc<dyn ContentFormat + 'static>]
) -> Result<CEStructure, Box<dyn Error + 'static>> where
S: AsRef<str>,
Creates a new c-e structure from a textual description, in a
Context
given by a ContextHandle
.
pub fn add_from_file<P>(
&mut self,
path: P,
formats: &[Rc<dyn ContentFormat + 'static>]
) -> Result<Rc<dyn ContentFormat + 'static>, Box<dyn Error + 'static>> where
P: AsRef<Path>,
[src]
&mut self,
path: P,
formats: &[Rc<dyn ContentFormat + 'static>]
) -> Result<Rc<dyn ContentFormat + 'static>, Box<dyn Error + 'static>> where
P: AsRef<Path>,
Extends this c-e structure with another one, which is created
in the Context
of the old c-e structure from a script file
to be found along the path
.
The script file is interpreted according to an appropriate
format of content description listed in the formats
array.
On success, returns the chosen format as a ContentFormat
trait object.
pub fn add_from_file_as_origin<P>(
&mut self,
path: P,
formats: &[Rc<dyn ContentFormat + 'static>]
) -> Result<(), Box<dyn Error + 'static>> where
P: AsRef<Path>,
[src]
&mut self,
path: P,
formats: &[Rc<dyn ContentFormat + 'static>]
) -> Result<(), Box<dyn Error + 'static>> where
P: AsRef<Path>,
Extends this c-e structure with another one, which is created
in the Context
of the old c-e structure from a script file
to be found along the path
.
The script file is interpreted according to an appropriate
format of content description listed in the formats
array.
On success, stores the chosen format as the new content origin.
pub fn from_file<P>(
ctx: &Arc<Mutex<Context>>,
path: P,
formats: &[Rc<dyn ContentFormat + 'static>]
) -> Result<CEStructure, Box<dyn Error + 'static>> where
P: AsRef<Path>,
[src]
ctx: &Arc<Mutex<Context>>,
path: P,
formats: &[Rc<dyn ContentFormat + 'static>]
) -> Result<CEStructure, Box<dyn Error + 'static>> where
P: AsRef<Path>,
Creates a new c-e structure from a script file to be found
along the path
, in a Context
given by a
ContextHandle
.
pub fn get_context(&self) -> &Arc<Mutex<Context>>
[src]
pub fn get_name(&self) -> Option<&str>
[src]
pub fn is_coherent(&self) -> bool
[src]
Returns link coherence status indicating whether this object represents a proper c-e structure.
C-e structure is coherent iff it has no thin links, where a
link is thin iff it occurs either in causes or in effects, but
not in both. Internally, there is a thin links counter
associated with each CEStructure
object. This counter is
updated whenever a polynomial is added to the structure.
pub fn get_port_link_formula(&self) -> Result<Formula, AcesError>
[src]
pub fn get_fork_join_formula(&self) -> Result<Formula, AcesError>
[src]
pub fn get_formula(&self) -> Result<Formula, AcesError>
[src]
pub fn check_coherence(&self) -> Result<(), AcesError>
[src]
pub fn solve(&mut self) -> Result<(), AcesError>
[src]
pub fn get_firing_set(&self) -> Option<&FiringSet>
[src]
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for CEStructure
impl !Send for CEStructure
impl !Sync for CEStructure
impl Unpin for CEStructure
impl !UnwindSafe for CEStructure
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<Reference, Outer, OuterFieldType, Inner> HasPart<Nested<Outer, Inner>> for Reference where
Inner: Part,
Outer: Part<PartType = Field<OuterFieldType>>,
OuterFieldType: HasPart<Inner, RawTarget = OuterFieldType> + PartialRefTarget + ?Sized,
Reference: HasPart<Outer> + ?Sized,
Inner: Part,
Outer: Part<PartType = Field<OuterFieldType>>,
OuterFieldType: HasPart<Inner, RawTarget = OuterFieldType> + PartialRefTarget + ?Sized,
Reference: HasPart<Outer> + ?Sized,
unsafe fn part_ptr(
ptr: *const <Reference as PartialRefTarget>::RawTarget
) -> <<Inner as Part>::PartType as PartType>::Ptr
ptr: *const <Reference as PartialRefTarget>::RawTarget
) -> <<Inner as Part>::PartType as PartType>::Ptr
unsafe fn part_ptr_mut(
ptr: *mut <Reference as PartialRefTarget>::RawTarget
) -> <<Inner as Part>::PartType as PartType>::PtrMut
ptr: *mut <Reference as PartialRefTarget>::RawTarget
) -> <<Inner as Part>::PartType as PartType>::PtrMut
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,