pub enum MarketSet {
Single((CommodityID, RegionID)),
Cycle(Vec<(CommodityID, RegionID)>),
Layer(Vec<MarketSet>),
}Expand description
Represents a set of markets which are invested in together.
Variants§
Single((CommodityID, RegionID))
Assets are selected for a single market using select_assets_for_single_market
Cycle(Vec<(CommodityID, RegionID)>)
Assets are selected for a group of markets which forms a cycle.
Experimental: handled by select_assets_for_cycle and guarded by the broken options
parameter.
Layer(Vec<MarketSet>)
Assets are selected for a layer of independent MarketSets
Implementations§
Source§impl MarketSet
impl MarketSet
Sourcepub fn iter_markets<'a>(
&'a self,
) -> Box<dyn Iterator<Item = &'a (CommodityID, RegionID)> + 'a>
pub fn iter_markets<'a>( &'a self, ) -> Box<dyn Iterator<Item = &'a (CommodityID, RegionID)> + 'a>
Recursively iterate over all markets contained in this MarketSet.
Sourcepub fn select_assets(
&self,
model: &Model,
year: u32,
demand: &AllDemandMap,
existing_assets: &[AssetRef],
prices: &Prices,
seen_markets: &[(CommodityID, RegionID)],
previously_selected_assets: &[AssetRef],
writer: &mut DataWriter,
) -> Result<Vec<AssetRef>>
pub fn select_assets( &self, model: &Model, year: u32, demand: &AllDemandMap, existing_assets: &[AssetRef], prices: &Prices, seen_markets: &[(CommodityID, RegionID)], previously_selected_assets: &[AssetRef], writer: &mut DataWriter, ) -> Result<Vec<AssetRef>>
Selects assets for this market set variant and passes through the shared context needed by single-market, cycle, or layered selection.
§Arguments
model– Simulation model supplying parameters, processes, and dispatch.year– Planning year being solved.demand– Net demand profiles available to all markets before selection.existing_assets– Assets already commissioned in the system.prices– Commodity price assumptions to use when valuing investments.seen_markets– Markets for which investments have already been settled.previously_selected_assets– Assets chosen in earlier market sets.writer– Data sink used to log optimisation artefacts.
Trait Implementations§
impl Eq for MarketSet
impl StructuralPartialEq for MarketSet
Auto Trait Implementations§
impl Freeze for MarketSet
impl RefUnwindSafe for MarketSet
impl !Send for MarketSet
impl !Sync for MarketSet
impl Unpin for MarketSet
impl UnsafeUnpin for MarketSet
impl UnwindSafe for MarketSet
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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. 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