pub struct CommodityPrices(BTreeMap<(CommodityID, RegionID, TimeSliceID), MoneyPerFlow>);
Expand description
A map relating commodity ID + region + time slice to current price (endogenous)
Tuple Fields§
§0: BTreeMap<(CommodityID, RegionID, TimeSliceID), MoneyPerFlow>
Implementations§
Source§impl CommodityPrices
impl CommodityPrices
Sourcefn with_levies(self, model: &Model, year: u32) -> Self
fn with_levies(self, model: &Model, year: u32) -> Self
Add prices based on levies/incentives.
If a commodity already has a price based on the previous dual-based calculation, we choose the higher of the two.
§Arguments
model
- The modelyear
- The milestone year of interest
Sourcefn with_scarcity_adjustment<'a, I>(self, activity_duals: I) -> Self
fn with_scarcity_adjustment<'a, I>(self, activity_duals: I) -> Self
Remove the impact of scarcity on prices.
§Arguments
activity_duals
- Value of activity duals from solution
Sourcepub fn insert(
&mut self,
commodity_id: &CommodityID,
region_id: &RegionID,
time_slice: &TimeSliceID,
price: MoneyPerFlow,
)
pub fn insert( &mut self, commodity_id: &CommodityID, region_id: &RegionID, time_slice: &TimeSliceID, price: MoneyPerFlow, )
Insert a price for the given commodity, region and time slice
Sourcepub fn iter(
&self,
) -> impl Iterator<Item = (&CommodityID, &RegionID, &TimeSliceID, MoneyPerFlow)>
pub fn iter( &self, ) -> impl Iterator<Item = (&CommodityID, &RegionID, &TimeSliceID, MoneyPerFlow)>
Iterate over the map.
§Returns
An iterator of tuples containing commodity ID, region ID, time slice and price.
Sourcepub fn get(
&self,
commodity_id: &CommodityID,
region_id: &RegionID,
time_slice: &TimeSliceID,
) -> Option<MoneyPerFlow>
pub fn get( &self, commodity_id: &CommodityID, region_id: &RegionID, time_slice: &TimeSliceID, ) -> Option<MoneyPerFlow>
Get the price for the specified commodity for a given region and time slice
Sourcepub fn within_tolerance(&self, other: &Self, tolerance: Dimensionless) -> bool
pub fn within_tolerance(&self, other: &Self, tolerance: Dimensionless) -> bool
Check if prices are within relative tolerance of another price set
Both objects must have exactly the same set of keys, otherwise it will panic.
Trait Implementations§
Source§impl Clone for CommodityPrices
impl Clone for CommodityPrices
Source§fn clone(&self) -> CommodityPrices
fn clone(&self) -> CommodityPrices
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Default for CommodityPrices
impl Default for CommodityPrices
Source§fn default() -> CommodityPrices
fn default() -> CommodityPrices
Returns the “default value” for a type. Read more
Source§impl<'a> FromIterator<(&'a CommodityID, &'a RegionID, &'a TimeSliceID, MoneyPerFlow)> for CommodityPrices
impl<'a> FromIterator<(&'a CommodityID, &'a RegionID, &'a TimeSliceID, MoneyPerFlow)> for CommodityPrices
Source§impl IntoIterator for CommodityPrices
impl IntoIterator for CommodityPrices
Source§type Item = ((CommodityID, RegionID, TimeSliceID), MoneyPerFlow)
type Item = ((CommodityID, RegionID, TimeSliceID), MoneyPerFlow)
The type of the elements being iterated over.
Source§type IntoIter = IntoIter<(CommodityID, RegionID, TimeSliceID), MoneyPerFlow>
type IntoIter = IntoIter<(CommodityID, RegionID, TimeSliceID), MoneyPerFlow>
Which kind of iterator are we turning this into?
Auto Trait Implementations§
impl Freeze for CommodityPrices
impl RefUnwindSafe for CommodityPrices
impl !Send for CommodityPrices
impl !Sync for CommodityPrices
impl Unpin for CommodityPrices
impl UnwindSafe for CommodityPrices
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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