pub struct Packet {
pub size: usize,
pub routing_info: RefCell<RoutingInfo>,
pub message: Rc<Message>,
pub index: usize,
pub cycle_into_network: RefCell<Time>,
pub extra: RefCell<Option<PacketExtraInfo>>,
}
Expand description
A portion of a message. They are divided into phits. All phits must go through the same queues without phits of other packets in between.
Fields§
§size: usize
Number of phits
routing_info: RefCell<RoutingInfo>
Information for the routing
message: Rc<Message>
The message to what this packet belongs.
index: usize
position inside the message
cycle_into_network: RefCell<Time>
The cycle when the packet has touched the first router. This is, the packet leading phit has been inserted into a router. We set it to 0 if the packet has not entered the network yet.
extra: RefCell<Option<PacketExtraInfo>>
Extra info tracked for some special statistics.
Implementations§
Trait Implementations§
Source§impl Quantifiable for Packet
impl Quantifiable for Packet
Source§fn total_memory(&self) -> usize
fn total_memory(&self) -> usize
Get the total memory currently being employed by the implementing type. Both stack and heap.
Source§fn print_memory_breakdown(&self)
fn print_memory_breakdown(&self)
Prints by stdout how much memory is used per component.
Source§fn forecast_total_memory(&self) -> usize
fn forecast_total_memory(&self) -> usize
Get an estimation on how much memory the type could reach during the simulation.
Auto Trait Implementations§
impl !Freeze for Packet
impl !RefUnwindSafe for Packet
impl !Send for Packet
impl !Sync for Packet
impl Unpin for Packet
impl !UnwindSafe for Packet
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
Mutably borrows from an owned value. Read more
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>
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 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>
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