Skip to main content

ProcessTree

Struct ProcessTree 

Source
pub struct ProcessTree {
    pub activity_key: ActivityKey,
    pub tree: Vec<Node>,
    pub transition2node: Vec<usize>,
}

Fields§

§activity_key: ActivityKey§tree: Vec<Node>§transition2node: Vec<usize>

Implementations§

Source§

impl ProcessTree

Source

pub fn node_to_lpn( &self, node: usize, net: &mut LabelledPetriNet, translator: &ActivityKeyTranslator, source: usize, sink: usize, ) -> Result<usize>

Source§

impl ProcessTree

Source

pub fn number_of_leaves(&self) -> usize

Source§

impl ProcessTree

Source

pub fn get_number_of_nodes(&self) -> usize

Source

pub fn get_node(&self, node: usize) -> Option<&Node>

Source

pub fn root(&self) -> usize

Source

pub fn get_node_of_transition( &self, transition: TransitionIndex, ) -> Result<&Node>

Source

pub fn get_parent(&self, node: usize) -> Option<(usize, usize)>

Returns the parent of node. Notice that this is an expensive operation; avoid if possible.

@param node @return The parent of node, and the rank of the child

Source

pub fn get_child_rank_with( &self, parent: usize, grand_child: usize, ) -> Option<usize>

@param parent @param grandChild @return The number of the child within parent that contains grandChild. If grandChild is not a child of parent, will return -1.

Source

pub fn get_children(&self, node: usize) -> ChildrenIterator<'_>

Source

pub fn get_parents(&self, node: usize) -> ParentsIterator<'_>

Source

pub fn get_descendants(&self, node: usize) -> &[Node]

Source

pub fn is_parent_of(&self, parent: usize, child: usize) -> bool

@param parent @param child @return Whether the child is a direct or indirect child of parent.

Source

pub fn traverse(&self, node: usize) -> usize

Find the next node of this node: the next sibling, and if that is not available, the next sibling up the tree. May return a non-existing node if there is no sibling.

Source

pub fn get_child(&self, parent: usize, child_rank: usize) -> usize

Source

pub fn get_number_of_children(&self, parent: usize) -> Option<usize>

Source

pub fn node_to_transition(&self, node: usize) -> Option<usize>

Trait Implementations§

Source§

impl Clone for ProcessTree

Source§

fn clone(&self) -> ProcessTree

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ProcessTree

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for ProcessTree

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Exportable for ProcessTree

Source§

fn export_from_object(object: EbiObject, f: &mut dyn Write) -> Result<()>

Input: any EbiObject. Output: the object will have been converted if necessary, and written to f. May fail for all kinds of reasons.
Source§

fn export(&self, f: &mut dyn Write) -> Result<()>

Source§

impl From<(ActivityKey, Vec<Node>)> for ProcessTree

Source§

fn from(value: (ActivityKey, Vec<Node>)) -> Self

Converts to this type from the input type.
Source§

impl From<ProcessTree> for DeterministicFiniteAutomaton

Source§

fn from(tree: ProcessTree) -> Self

Converts to this type from the input type.
Source§

impl From<ProcessTree> for LabelledPetriNet

Source§

fn from(value: ProcessTree) -> Self

Converts to this type from the input type.
Source§

impl From<ProcessTree> for LolaNet

Source§

fn from(value: ProcessTree) -> Self

Converts to this type from the input type.
Source§

impl From<ProcessTreeMarkupLanguage> for ProcessTree

Source§

fn from(value: ProcessTreeMarkupLanguage) -> Self

Converts to this type from the input type.
Source§

impl From<StochasticProcessTree> for ProcessTree

Source§

fn from(value: StochasticProcessTree) -> Self

Converts to this type from the input type.
Source§

impl FromStr for ProcessTree

Source§

type Err = Error

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Graphable for ProcessTree

Source§

impl HasActivityKey for ProcessTree

Source§

impl Importable for ProcessTree

Source§

const FILE_FORMAT_SPECIFICATION_LATEX: &str = "A process tree is a line-based structure. Lines starting with a \\# are ignored. This first line is exactly `process tree'. The subsequent lines contain the nodes: Each node is either: \\begin{itemize} \\item A line with the word `activity' followed on the same line by a space and the label of the activity leaf; \\item The word `tau'; \\item The name of an operator (`sequence', `xor', `concurrent', `loop', `interleaved', or `or') on its own line. The line thereafter contains the number of children of the node, after which the nodes are given. An operator node must have at least one child. \\end{itemize} Indentation of nodes is allowed, but not mandatory. For instance: \\lstinputlisting[language=ebilines, style=boxed]{../testfiles/all_operators.ptree}"

A latex piece that describes the file format.
Source§

const IMPORTER_PARAMETERS: &[ImporterParameter]

Defines the parameters that the importer expects.
Source§

fn import_as_object( reader: &mut dyn BufRead, parameter_values: &ImporterParameterValues, ) -> Result<EbiObject>

Source§

fn import(reader: &mut dyn BufRead, _: &ImporterParameterValues) -> Result<Self>
where Self: Sized,

Attempts to import from the reader. The parameter_values must match the order given in IMPORTER_PARAMETERS.
Source§

fn default_importer_parameter_values() -> ImporterParameterValues

Source§

impl Infoable for ProcessTree

Source§

fn info(&self, f: &mut impl Write) -> Result<()>

Source§

impl TranslateActivityKey for ProcessTree

Source§

fn translate_using_activity_key(&mut self, to_activity_key: &mut ActivityKey)

Change the activity key of this object, by translating all mentions of activities to the new activity key (which will be updated with activity labels it did not have yet.). This is a potentially expensive operation. If only a part of the activities will be used, then consider using an ActivityKeyTranslator directly. The activity key of this object will be updated too, so the activity keys will be equivalent afterwards.
Source§

impl TryFrom<ProcessTree> for PetriNet

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: ProcessTree) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<ProcessTree> for PetriNetMarkupLanguage

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: ProcessTree) -> Result<Self, Self::Error>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T, U> ExactFrom<T> for U
where U: TryFrom<T>,

Source§

fn exact_from(value: T) -> U

Source§

impl<T, U> ExactInto<U> for T
where U: ExactFrom<T>,

Source§

fn exact_into(self) -> U

Source§

impl<T> Finish for T

Source§

fn finish(self)

Does nothing but move self, equivalent to drop.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T, U> OverflowingInto<U> for T
where U: OverflowingFrom<T>,

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> RoundingInto<U> for T
where U: RoundingFrom<T>,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> SaturatingInto<U> for T
where U: SaturatingFrom<T>,

Source§

impl<T> ToDebugString for T
where T: Debug,

Source§

fn to_debug_string(&self) -> String

Returns the String produced by Ts Debug implementation.

§Examples
use malachite_base::strings::ToDebugString;

assert_eq!([1, 2, 3].to_debug_string(), "[1, 2, 3]");
assert_eq!(
    [vec![2, 3], vec![], vec![4]].to_debug_string(),
    "[[2, 3], [], [4]]"
);
assert_eq!(Some(5).to_debug_string(), "Some(5)");
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<U, T> ToOwnedObj<U> for T
where U: FromObjRef<T>,

Source§

fn to_owned_obj(&self, data: FontData<'_>) -> U

Convert this type into T, using the provided data to resolve any offsets.
Source§

impl<U, T> ToOwnedTable<U> for T
where U: FromTableRef<T>,

Source§

fn to_owned_table(&self) -> U

Source§

impl<T> ToPDF for T
where T: ToSVG,

Source§

impl<T> ToPNG for T
where T: ToSVG,

Source§

impl<T> ToSVG for T
where T: Graphable,

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T, U> WrappingInto<U> for T
where U: WrappingFrom<T>,

Source§

fn wrapping_into(self) -> U