Struct pnets::standard::Net [−][src]
pub struct Net { pub name: String, pub transitions: IndexVec<TransitionId, Transition>, pub places: IndexVec<PlaceId, Place>, // some fields omitted }
Expand description
Standard Petri net, with only produce and consume arcs
This structure is indexed with PlaceId
and TransitionId
to allow easy access to places
and transitions.
As this kind of network is a subset of timed Petri net, so we can create one from timed Petri
net (but you loose arc::Kind::Inhibitor
, arc::Kind::StopWatch
and
arc::Kind::StopWatchInhibitor
arcs and timings).
Fields
name: String
Name of this network
transitions: IndexVec<TransitionId, Transition>
Transitions of the network
places: IndexVec<PlaceId, Place>
Places of the network
Implementations
Create a place in the network without name and return its index
Create a transition in the network without name and return its index
Get node name with its id
Get node id with its name
Add an arc in the network. This kind of network support only arc::Kind::Consume
and
arc::Kind::Produce
arcs.
Errors
Return NetError::UnsupportedArc
when trying to add a kind of arc which is not supported
Disconnect a place in the network
The place is not really deleted to avoid memory relocation and extra information about this place such as name can be useful later.
Disconnect a transition in the network
The transition is not really deleted to avoid memory relocation and extra information about this transitions such as name can be useful later.
Clone an existing place with all its arcs
pub fn new_without_disconnected(
&self
) -> (Net, IndexVec<TransitionId, TransitionId>, IndexVec<PlaceId, PlaceId>)
pub fn new_without_disconnected(
&self
) -> (Net, IndexVec<TransitionId, TransitionId>, IndexVec<PlaceId, PlaceId>)
Create a new network without all disconected nodes and without labels to avoid extra memory consumption.
It returns a new network and the mapping between old indexes and new indexes.
Trait Implementations
type Output = Transition
type Output = Transition
The returned type after indexing.
Performs the indexing (container[index]
) operation. Read more
Performs the mutable indexing (container[index]
) operation. Read more
Auto Trait Implementations
impl !RefUnwindSafe for Net
impl !UnwindSafe for Net
Blanket Implementations
Mutably borrows from an owned value. Read more