README

wcx789ll/moonsim/network does not have a README file

pub(all) struct BandwidthLink {
src : Int
dst : Int
bandwidth_bps : Double
propagation_latency : Double
buffer_capacity_bytes : Int
current_buffer_bytes : Int
next_available_time : Double
packets_sent : Int
packets_delivered : Int
overflow_drops : Int
total_queueing_delay : Double
}

#
BandwidthLink::mean_queueing_delay

fn BandwidthLink::mean_queueing_delay(self : BandwidthLink) -> Double

#
BandwidthLink::new

fn BandwidthLink::new(src : Int, dst : Int, bandwidth_bps : Double, propagation_latency : Double, buffer_capacity_bytes : Int) -> BandwidthLink

#
BandwidthLink::overflow_drops

fn BandwidthLink::overflow_drops(self : BandwidthLink) -> Int

#
BandwidthLink::packets_delivered

fn BandwidthLink::packets_delivered(self : BandwidthLink) -> Int

#
BandwidthLink::packets_sent

fn BandwidthLink::packets_sent(self : BandwidthLink) -> Int

#
BandwidthLink::transmit

fn BandwidthLink::transmit(self : BandwidthLink, now : Double, size_bytes : Int) -> Double?

#
BandwidthLink::update_buffer

fn BandwidthLink::update_buffer(self : BandwidthLink, now : Double) -> Unit

pub(all) struct NetworkLink {
src : Int
dst : Int
latency : Double
drop_probability : Double
packets_sent : Int
packets_dropped : Int
packets_delivered : Int
}

#
NetworkLink::new

fn NetworkLink::new(src : Int, dst : Int, latency : Double, drop_probability : Double) -> NetworkLink

#
NetworkLink::packets_delivered

fn NetworkLink::packets_delivered(self : NetworkLink) -> Int

#
NetworkLink::packets_dropped

fn NetworkLink::packets_dropped(self : NetworkLink) -> Int

#
NetworkLink::packets_sent

fn NetworkLink::packets_sent(self : NetworkLink) -> Int

#
NetworkTopology

pub(all) struct NetworkTopology[T] {
mgr :
EventManager

next_seed : Int
// private fields
}

fn[T] NetworkTopology::add_link(self : NetworkTopology[T], src : Int, dst : Int, latency : Double, drop_probability : Double) -> Unit

#
NetworkTopology::add_node

fn[T] NetworkTopology::add_node(self : NetworkTopology[T], node_id : Int) -> Unit

fn[T] NetworkTopology::get_link(self : NetworkTopology[T], src : Int, dst : Int) -> NetworkLink?

#
NetworkTopology::get_mailbox

fn[T] NetworkTopology::get_mailbox(self : NetworkTopology[T], node_id : Int) -> Array[Packet[T]]

#
NetworkTopology::get_node_status

fn[T] NetworkTopology::get_node_status(self : NetworkTopology[T], node_id : Int) -> NodeStatus?

#
NetworkTopology::pop_mailbox

fn[T] NetworkTopology::pop_mailbox(self : NetworkTopology[T], node_id : Int) -> Packet[T]?

#
NetworkTopology::send_packet

fn[T] NetworkTopology::send_packet(self : NetworkTopology[T], src : Int, dst : Int, payload : T, priority : Int, on_deliver : (Packet[T]) -> Unit) -> Bool

#
NetworkTopology::set_node_status

fn[T] NetworkTopology::set_node_status(self : NetworkTopology[T], node_id : Int, status : NodeStatus) -> Unit

#
NodeStatus

pub(all) enum NodeStatus {
Online
Offline
Partitioned
} derive(Eq,
Debug
)

impl Show for NodeStatus

#
Packet

pub(all) struct Packet[T] {
src : Int
dst : Int
payload : T
send_time : Double
}

Powered by MoonBit

Site sourceReport issuePackagesBuild queueSkillsStatistics

© 2026 mooncakes.io