Skip to main content

TransportCapacityPoolV1

Struct TransportCapacityPoolV1 

Source
pub struct TransportCapacityPoolV1 {
    pub id: String,
    pub resource: String,
    pub custodian: KnowledgeHolderRef,
    pub window_from: SimTime,
    pub window_until: SimTime,
    pub quantity: u64,
    pub booked: u64,
    pub consumed: u64,
    pub revision: u64,
}
Expand description

A windowed pool of interchangeable transport capacity, such as ferry crossings, carriage places, or relay mounts for one period.

quantity is the capacity offered for the whole window. booked is held by confirmed bookings and consumed by consumed ones; released, expired, cancelled, and failed bookings hold nothing. revision advances whenever the offer or either counter changes, so allocation evidence can cite the exact pool state it read.

Fields§

§id: String§resource: String§custodian: KnowledgeHolderRef§window_from: SimTime§window_until: SimTime§quantity: u64§booked: u64§consumed: u64§revision: u64

Implementations§

Source§

impl TransportCapacityPoolV1

Source

pub fn new( id: String, resource: String, custodian: KnowledgeHolderRef, window_from: SimTime, window_until: SimTime, quantity: u64, ) -> Result<TransportCapacityPoolV1, TransportError>

Creates an empty pool at revision one.

Source

pub fn validate(&self) -> Result<(), TransportError>

Source

pub const fn available(&self) -> u64

Capacity neither booked nor consumed.

Source

pub fn revise( &mut self, window_from: SimTime, window_until: SimTime, quantity: u64, ) -> Result<(), TransportError>

Replaces the offered window and quantity. The new quantity must still cover everything booked or consumed.

Source

pub fn apply_allocations( &mut self, allocations: &[BookingAllocationV1], ) -> Result<(), TransportError>

Commits one allocation pass computed by allocate_capacity_bookings against this exact pool revision, then advances the revision.

Source

pub fn apply_booking_transition( &mut self, quantity: u64, from: CapacityBookingStatus, to: CapacityBookingStatus, ) -> Result<(), TransportError>

Applies the capacity effect of one booking transition made after allocation: consumption moves quantity from booked to consumed, while releasing, cancelling, or expiring a confirmed booking and releasing a consumed one return it. Cancelling or failing a request holds nothing and leaves the pool unchanged. Confirmation happens only through Self::apply_allocations.

Trait Implementations§

Source§

impl Clone for TransportCapacityPoolV1

Source§

fn clone(&self) -> TransportCapacityPoolV1

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TransportCapacityPoolV1

Source§

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

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

impl<'de> Deserialize<'de> for TransportCapacityPoolV1

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<TransportCapacityPoolV1, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for TransportCapacityPoolV1

Source§

impl PartialEq for TransportCapacityPoolV1

Source§

fn eq(&self, other: &TransportCapacityPoolV1) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for TransportCapacityPoolV1

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for TransportCapacityPoolV1

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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

Source§

type Output = T

Should always be Self
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<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.