pub struct ReadWriteSet;
Expand description
Calcuate the reads-from and writes-to set for a given set of assignments.
Implementations§
Source§impl ReadWriteSet
impl ReadWriteSet
Sourcepub fn port_reads<T>(
assign: &Assignment<T>,
) -> PortIterator<impl Iterator<Item = RRC<Port>>>
pub fn port_reads<T>( assign: &Assignment<T>, ) -> PortIterator<impl Iterator<Item = RRC<Port>>>
Returns ir::Port that are read from in the given Assignment.
Source§impl ReadWriteSet
impl ReadWriteSet
Sourcepub fn control_port_read_write_set_static(
scon: &StaticControl,
) -> (Vec<RRC<Port>>, Vec<RRC<Port>>)
pub fn control_port_read_write_set_static( scon: &StaticControl, ) -> (Vec<RRC<Port>>, Vec<RRC<Port>>)
Returns the ports that are read and written, respectively, by the given static control program.
Sourcepub fn control_read_write_set_static(
scon: &StaticControl,
) -> (Vec<RRC<Cell>>, Vec<RRC<Cell>>)
pub fn control_read_write_set_static( scon: &StaticControl, ) -> (Vec<RRC<Cell>>, Vec<RRC<Cell>>)
Returns the cells that are read and written, respectively, by the given static control program.
Sourcepub fn control_port_read_write_set<const INCLUDE_HOLE_ASSIGNS: bool>(
con: &Control,
) -> (Vec<RRC<Port>>, Vec<RRC<Port>>)
pub fn control_port_read_write_set<const INCLUDE_HOLE_ASSIGNS: bool>( con: &Control, ) -> (Vec<RRC<Port>>, Vec<RRC<Port>>)
Returns the ports that are read and written, respectively, by the given control program. INCLUDE_HOLE_ASSIGNS: in either case, we will ignore done holes. However, if INCLUDE_HOLE_ASSIGNS is false, we ignore all assignments that write to holes, even if the src of that assignment is a cell’s port.
Sourcepub fn control_read_write_set<const INCLUDE_HOLE_ASSIGNS: bool>(
con: &Control,
) -> (Vec<RRC<Cell>>, Vec<RRC<Cell>>)
pub fn control_read_write_set<const INCLUDE_HOLE_ASSIGNS: bool>( con: &Control, ) -> (Vec<RRC<Cell>>, Vec<RRC<Cell>>)
Returns the cells that are read and written, respectively, by the given control program. INCLUDE_HOLE_ASSIGNS: in either case, we will ignore done holes themselves. However, if INCLUDE_HOLE_ASSIGNS is true, we ignore all assignments that write to holes, even if the src of that assignment is a cell’s port.
Auto Trait Implementations§
impl Freeze for ReadWriteSet
impl RefUnwindSafe for ReadWriteSet
impl Send for ReadWriteSet
impl Sync for ReadWriteSet
impl Unpin for ReadWriteSet
impl UnwindSafe for ReadWriteSet
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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