pub struct CEStructure { /* private fields */ }Expand description
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.
Implementations§
Source§impl CEStructure
impl CEStructure
Sourcepub fn new(
ctx: &Arc<Mutex<Context>>,
origin: Rc<dyn ContentFormat>,
) -> CEStructure
pub fn new( ctx: &Arc<Mutex<Context>>, origin: Rc<dyn ContentFormat>, ) -> CEStructure
Creates an empty c-e structure in a Context given by a
ContextHandle.
See also a specialized variant of this method,
new_interactive().
Sourcepub fn new_interactive(ctx: &Arc<Mutex<Context>>) -> CEStructure
pub fn new_interactive(ctx: &Arc<Mutex<Context>>) -> CEStructure
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.
Sourcepub fn add_causes<'a, I>(
&mut self,
node_id: NodeID,
poly_ids: I,
) -> Result<(), AcesError>
pub fn add_causes<'a, I>( &mut self, node_id: NodeID, poly_ids: I, ) -> Result<(), AcesError>
Constructs new Polynomial from a sequence of sequences of
NodeIDs 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 θ).
Sourcepub fn add_effects<'a, I>(
&mut self,
node_id: NodeID,
poly_ids: I,
) -> Result<(), AcesError>
pub fn add_effects<'a, I>( &mut self, node_id: NodeID, poly_ids: I, ) -> Result<(), AcesError>
Constructs new Polynomial from a sequence of sequences of
NodeIDs 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 θ).
Sourcepub fn with_content(
self,
content: Box<dyn Content>,
) -> Result<CEStructure, AcesError>
pub fn with_content( self, content: Box<dyn Content>, ) -> Result<CEStructure, AcesError>
Sourcepub fn add_from_str<S>(
&mut self,
script: S,
formats: &[Rc<dyn ContentFormat>],
) -> Result<Rc<dyn ContentFormat>, Box<dyn Error>>
pub fn add_from_str<S>( &mut self, script: S, formats: &[Rc<dyn ContentFormat>], ) -> Result<Rc<dyn ContentFormat>, Box<dyn Error>>
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.
Sourcepub fn add_from_str_as_origin<S>(
&mut self,
script: S,
formats: &[Rc<dyn ContentFormat>],
) -> Result<(), Box<dyn Error>>
pub fn add_from_str_as_origin<S>( &mut self, script: S, formats: &[Rc<dyn ContentFormat>], ) -> Result<(), Box<dyn Error>>
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.
Sourcepub fn from_str<S>(
ctx: &Arc<Mutex<Context>>,
script: S,
formats: &[Rc<dyn ContentFormat>],
) -> Result<CEStructure, Box<dyn Error>>
pub fn from_str<S>( ctx: &Arc<Mutex<Context>>, script: S, formats: &[Rc<dyn ContentFormat>], ) -> Result<CEStructure, Box<dyn Error>>
Creates a new c-e structure from a textual description, in a
Context given by a ContextHandle.
Sourcepub fn add_from_file<P>(
&mut self,
path: P,
formats: &[Rc<dyn ContentFormat>],
) -> Result<Rc<dyn ContentFormat>, Box<dyn Error>>
pub fn add_from_file<P>( &mut self, path: P, formats: &[Rc<dyn ContentFormat>], ) -> Result<Rc<dyn ContentFormat>, Box<dyn Error>>
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.
Sourcepub fn add_from_file_as_origin<P>(
&mut self,
path: P,
formats: &[Rc<dyn ContentFormat>],
) -> Result<(), Box<dyn Error>>
pub fn add_from_file_as_origin<P>( &mut self, path: P, formats: &[Rc<dyn ContentFormat>], ) -> Result<(), Box<dyn Error>>
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.
Sourcepub fn from_file<P>(
ctx: &Arc<Mutex<Context>>,
path: P,
formats: &[Rc<dyn ContentFormat>],
) -> Result<CEStructure, Box<dyn Error>>
pub fn from_file<P>( ctx: &Arc<Mutex<Context>>, path: P, formats: &[Rc<dyn ContentFormat>], ) -> Result<CEStructure, Box<dyn Error>>
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>>
pub fn get_name(&self) -> Option<&str>
Sourcepub fn is_coherent(&self) -> bool
pub fn is_coherent(&self) -> bool
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.