Skip to main content

BusinessProcessModelAndNotation

Struct BusinessProcessModelAndNotation 

Source
pub struct BusinessProcessModelAndNotation {
    pub activity_key: ActivityKey,
    pub collaboration_index: Option<(usize, ())>,
    pub collaboration_id: Option<String>,
    pub definitions_index: (usize, ()),
    pub definitions_id: String,
    pub elements: Vec<BPMNElement>,
    pub message_flows: Vec<BPMNMessageFlow>,
    /* private fields */
}
Expand description

A struct with a Business Process Model and Notation (BPMN) model.

Example:

use std::io::prelude::*;
use std::io::BufReader;
use std::fs::File;
use ebi_bpmn::BusinessProcessModelAndNotation;

fn main() -> anyhow::Result<()> {
 let f = File::open("testfiles/model.bpmn")?;
 let mut reader = BufReader::new(f);

 let bpmn = BusinessProcessModelAndNotation::import_from_reader(&mut reader, true)?;

 let mut marking = bpmn.get_initial_marking()?.unwrap();
assert_eq!(bpmn.get_enabled_transitions(&marking)?, vec![0]);
 bpmn.execute_transition(&mut marking, 0)?;

Ok(())
}

To create a BPMN model programmatically, please consider using a BPMNCreator.

Fields§

§activity_key: ActivityKey§collaboration_index: Option<(usize, ())>§collaboration_id: Option<String>§definitions_index: (usize, ())§definitions_id: String§elements: Vec<BPMNElement>§message_flows: Vec<BPMNMessageFlow>

Implementations§

Source§

impl BusinessProcessModelAndNotation

Source

pub fn number_of_elements(&self) -> usize

Returns the number of elements in the BPMN model (recurses).

Source

pub fn number_of_message_flows(&self) -> usize

Returns the number of message flows in the BPMN model (does not recurse).

Source

pub fn elements(&self) -> Vec<&BPMNElement>

Returns all elements in the model (recurses).

Source

pub fn parent_of(&self, global_index: (usize, ())) -> Option<&dyn Processable>

Returns the parent of the element or flow with the given index (recursively).

Source

pub fn sequence_flows(&self) -> Vec<&BPMNSequenceFlow>

Returns all sequence flows (recurses).

Source

pub fn global_index_2_element(&self, index: (usize, ())) -> Option<&BPMNElement>

Find an element with the given index (recurses).

Source

pub fn global_index_2_element_mut( &mut self, index: (usize, ()), ) -> Option<&mut BPMNElement>

Find an element with the given index and returns a mutable reference to it (recurses).

Source

pub fn message_flow_index_2_source( &self, message_flow_index: usize, ) -> Result<&BPMNElement, Error>

Returns the element that is the source of the given message flow.

Source

pub fn message_flow_index_2_target( &self, message_flow_index: usize, ) -> Result<&BPMNElement, Error>

Returns the element that is the target of the given message flow.

Source

pub fn global_index_2_message_flow( &self, message_flow_global_index: (usize, ()), ) -> Option<&BPMNMessageFlow>

Returns the sequence flow with the given global index.

Source

pub fn global_index_2_sequence_flow_and_parent( &self, sequence_flow_global_index: (usize, ()), ) -> Option<(&BPMNSequenceFlow, &dyn Processable)>

Returns the sequence flow with the given global index.

Source

pub fn global_index_2_sequence_flow_mut( &mut self, sequence_flow_global_index: (usize, ()), ) -> Option<&mut BPMNSequenceFlow>

Returns the sequence flow with this index, if it exists (recurses).

Source§

impl BusinessProcessModelAndNotation

Source

pub fn export_to_writer(&self, f: &mut dyn Write) -> Result<(), Error>

Exports the model to a writer.

Source§

impl BusinessProcessModelAndNotation

Source

pub fn import_from_reader( reader: &mut dyn BufRead, disallow_sequence_flow_weights: bool, ) -> Result<BusinessProcessModelAndNotation, Error>

Attempts to import a BPMN model. If disallow_sequence_flow_weights is set to true, parsing will fail if any sequence flow has a weight. Will only succeed if the model is structurally correct.

Source§

impl BusinessProcessModelAndNotation

Source

pub fn get_initial_marking(&self) -> Result<Option<BPMNMarking>, Error>

Returns the initial marking, as specified by the BPMN 2.0.2 standard on page 238. Additionally, if the model is empty, it does not support any trace, and this function returns Ok(None). If the model is structurally correct, this method will always return Ok(..). If not, will return Err() but will not panic.

Source

pub fn execute_transition( &self, marking: &mut BPMNMarking, transition_index: usize, ) -> Result<(), Error>

Updates the marking by executing the transition. By contract, will return Ok() if the model is structurally correct and the transition was enabled. May panic or return Err() otherwise.

Source

pub fn is_final_marking(&self, marking: &BPMNMarking) -> Result<bool, Error>

Returns whether the marking is a final marking. That is, whether no transitions are enabled in it. If the model is structurally correct, this function will always return Ok(). If the model is not structurally correct, this function may return Err() but will not panic.

Source

pub fn is_transition_silent( &self, transition_index: usize, marking: &BPMNMarking, ) -> bool

Returns true if the transition exists and is unlabelled, otherwise, returns false. Does not panic.

Source

pub fn get_transition_activity( &self, transition_index: usize, marking: &BPMNMarking, ) -> Option<Activity>

If the transition exists and is labelled, returns the label. Otherwise, returns None.

Source

pub fn get_enabled_transitions( &self, marking: &BPMNMarking, ) -> Result<Vec<usize>, Error>

Returns the transitions that are enabled in the given marking. By contract, will return Ok() if the model is structurally correct. Otherwise, it will return Err() but will not panic.

Source

pub fn number_of_transitions(&self, marking: &BPMNMarking) -> usize

Returns the number of transitions of the current marking. Note that not all of these transitions are necessarily enabled.

Source

pub fn transition_debug( &self, transition_index: usize, marking: &BPMNMarking, ) -> Option<String>

Print a list of transitions at the current marking.

Source

pub fn transition_2_consumed_tokens( &self, transition_index: usize, marking: &BPMNMarking, ) -> Result<Vec<Token>, Error>

Returns the tokens that are consumed when this transition is fired, or None if the transition does not exist.

Source

pub fn transition_2_produced_tokens( &self, transition_index: usize, marking: &BPMNMarking, ) -> Result<Vec<Token>, Error>

Returns the tokens that are produced when this transition is fired, or None if the transition does not exist.

Source§

impl BusinessProcessModelAndNotation

Source

pub fn is_structurally_correct(&self) -> Result<(), Error>

Verify whether the model is structurally correct using several, though not exhaustive, checks. If the BPMN model is imported by import_from_reader or created using a BPMNCreator, there is no need to call this method.

Trait Implementations§

Source§

impl BPMNObject for BusinessProcessModelAndNotation

Source§

fn global_index(&self) -> (usize, ())

return the global index
Source§

fn local_index(&self) -> usize

return the index within its parent
Source§

fn id(&self) -> &str

return the id
Source§

fn activity(&self) -> Option<Activity>

Returns the activity, if this element has one
Source§

fn is_unconstrained_start_event( &self, _bpmn: &BusinessProcessModelAndNotation, ) -> Result<bool, Error>

return whether this is a start event that could initiate a process instance
Source§

fn is_end_event(&self) -> bool

return whether this is an end event
Source§

fn incoming_sequence_flows(&self) -> &[usize]

the flow indices of the incoming sequence flows of this object
Source§

fn outgoing_sequence_flows(&self) -> &[usize]

the flow indices of the outgoing sequence flows of this object
Source§

fn incoming_message_flows(&self) -> &[usize]

the flow indices of the incoming message flows of this object
Source§

fn outgoing_message_flows(&self) -> &[usize]

the flow indices of the outgoing message flows of this object
Source§

fn can_start_process_instance( &self, _bpmn: &BusinessProcessModelAndNotation, ) -> Result<bool, Error>

return whether this object could start a process instance, regardless of marking
Source§

fn outgoing_message_flows_always_have_tokens(&self) -> bool

return whether the outgoing message flows of this object are always enabled
Source§

fn outgoing_messages_cannot_be_removed(&self) -> bool

return whether any outgoing message flow of this object cannot be removed when it is there If true, do not produce more than 1 message and do not remove messages from message flows outgoing of this object.
Source§

fn incoming_messages_are_ignored(&self) -> bool

Return whether any incoming messages are ignored. If true, do not produce messages on message arcs coming into this object.
Source§

fn can_have_incoming_sequence_flows(&self) -> bool

return whether this object can have incoming sequence flows
Source§

fn can_have_outgoing_sequence_flows(&self) -> bool

return whether this object can have incoming sequence flows
Source§

impl Clone for BusinessProcessModelAndNotation

Source§

fn clone(&self) -> BusinessProcessModelAndNotation

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 BusinessProcessModelAndNotation

Source§

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

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

impl Display for BusinessProcessModelAndNotation

Source§

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

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

impl Exportable for BusinessProcessModelAndNotation

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<ProcessTree> for BusinessProcessModelAndNotation

Source§

fn from(value: ProcessTree) -> Self

Converts to this type from the input type.
Source§

impl From<ProcessTreeMarkupLanguage> for BusinessProcessModelAndNotation

Source§

fn from(value: ProcessTreeMarkupLanguage) -> Self

Converts to this type from the input type.
Source§

impl From<StochasticBusinessProcessModelAndNotation> for BusinessProcessModelAndNotation

Source§

fn from( value: StochasticBusinessProcessModelAndNotation, ) -> BusinessProcessModelAndNotation

Converts to this type from the input type.
Source§

impl From<StochasticProcessTree> for BusinessProcessModelAndNotation

Source§

fn from(value: StochasticProcessTree) -> Self

Converts to this type from the input type.
Source§

impl FromStr for BusinessProcessModelAndNotation

Source§

type Err = Error

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

fn from_str( s: &str, ) -> Result<BusinessProcessModelAndNotation, <BusinessProcessModelAndNotation as FromStr>::Err>

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

impl Graphable for BusinessProcessModelAndNotation

Source§

impl HasActivityKey for BusinessProcessModelAndNotation

Source§

impl Importable for BusinessProcessModelAndNotation

Source§

const IMPORTER_PARAMETERS: &[ImporterParameter]

Defines the parameters that the importer expects.
Source§

const FILE_FORMAT_SPECIFICATION_LATEX: &str = "A Business Process Model and Notation (BPMN) model follows the OMG 2.0.2 standard~\\cite{omg2011bpmn}. Currently, a sub-set of elements is supported."

A latex piece that describes the file format.
Source§

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

Source§

fn import( reader: &mut dyn BufRead, _parameter_values: &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 BusinessProcessModelAndNotation

Source§

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

Source§

impl Processable for BusinessProcessModelAndNotation

Source§

fn elements_non_recursive(&self) -> &Vec<BPMNElement>

Returns the elements of this process, but does not recurse.
Source§

fn sequence_flows_non_recursive(&self) -> &Vec<BPMNSequenceFlow>

return the sequence flows of this process, but do not recurse.
Source§

fn to_sub_marking( &self, _initiation_mode: &InitiationMode<'_>, ) -> Result<BPMNSubMarking, Error>

return a initial marking
Source§

fn is_sub_process(&self) -> bool

return whether this is a sub-process, i.e. not a pool or a root of the model.
Source§

fn sequence_flow_index_2_source( &self, sequence_flow_index: usize, ) -> Result<&BPMNElement, Error>

return the element that is the target of the given sequence flow
Source§

fn sequence_flow_index_2_target( &self, sequence_flow_index: usize, ) -> Result<&BPMNElement, Error>

return the element that is the target of the given sequence flow
Source§

impl TranslateActivityKey for BusinessProcessModelAndNotation

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<BusinessProcessModelAndNotation> for StochasticBusinessProcessModelAndNotation

Source§

fn try_from( value: BusinessProcessModelAndNotation, ) -> Result<StochasticBusinessProcessModelAndNotation, <StochasticBusinessProcessModelAndNotation as TryFrom<BusinessProcessModelAndNotation>>::Error>

Attempt to transform a BPMN model into an SBPMN model. This is possible if the appropriate sequence flows are annotated with weights.

Source§

type Error = Error

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

impl TryFrom<DeterministicFiniteAutomaton> for BusinessProcessModelAndNotation

Source§

type Error = Error

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

fn try_from(value: DeterministicFiniteAutomaton) -> Result<Self>

Performs the conversion.
Source§

impl TryFrom<DirectlyFollowsGraph> for BusinessProcessModelAndNotation

Source§

type Error = Error

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

fn try_from(value: DirectlyFollowsGraph) -> Result<Self>

Performs the conversion.
Source§

impl TryFrom<DirectlyFollowsModel> for BusinessProcessModelAndNotation

Source§

type Error = Error

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

fn try_from(value: DirectlyFollowsModel) -> Result<Self>

Performs the conversion.
Source§

impl TryFrom<LabelledPetriNet> for BusinessProcessModelAndNotation

Source§

type Error = Error

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

fn try_from(value: LabelledPetriNet) -> Result<Self>

Performs the conversion.
Source§

impl TryFrom<PetriNetMarkupLanguage> for BusinessProcessModelAndNotation

Source§

type Error = Error

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

fn try_from(value: PetriNetMarkupLanguage) -> Result<Self>

Performs the conversion.
Source§

impl TryFrom<StochasticDeterministicFiniteAutomaton> for BusinessProcessModelAndNotation

Source§

type Error = Error

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

fn try_from(value: StochasticDeterministicFiniteAutomaton) -> Result<Self>

Performs the conversion.
Source§

impl TryFrom<StochasticDirectlyFollowsModel> for BusinessProcessModelAndNotation

Source§

type Error = Error

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

fn try_from(value: StochasticDirectlyFollowsModel) -> Result<Self>

Performs the conversion.
Source§

impl TryFrom<StochasticLabelledPetriNet> for BusinessProcessModelAndNotation

Source§

type Error = Error

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

fn try_from(value: StochasticLabelledPetriNet) -> Result<Self>

Performs the conversion.
Source§

impl TryFrom<StochasticNondeterministicFiniteAutomaton> for BusinessProcessModelAndNotation

Source§

type Error = Error

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

fn try_from(value: StochasticNondeterministicFiniteAutomaton) -> Result<Self>

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> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. 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> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
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> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
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> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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