pub enum InvestmentSet {
Single((CommodityID, RegionID)),
Cycle(Vec<(CommodityID, RegionID)>),
Layer(Vec<InvestmentSet>),
}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<InvestmentSet>)
Assets are selected for a layer of independent InvestmentSets
Implementations§
Source§impl InvestmentSet
impl InvestmentSet
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 InvestmentSet.
Sourcefn select_assets(
&self,
model: &Model,
year: u32,
demand: &IndexMap<(CommodityID, RegionID, TimeSliceID), Flow>,
existing_assets: &[AssetRef],
prices: &CommodityPrices,
seen_markets: &[(CommodityID, RegionID)],
previously_selected_assets: &[AssetRef],
writer: &mut DataWriter,
) -> Result<Vec<AssetRef>>
fn select_assets( &self, model: &Model, year: u32, demand: &IndexMap<(CommodityID, RegionID, TimeSliceID), Flow>, existing_assets: &[AssetRef], prices: &CommodityPrices, seen_markets: &[(CommodityID, RegionID)], previously_selected_assets: &[AssetRef], writer: &mut DataWriter, ) -> Result<Vec<AssetRef>>
Selects assets for this investment 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 investment sets.writer– Data sink used to log optimisation artefacts.
Trait Implementations§
Source§impl Clone for InvestmentSet
impl Clone for InvestmentSet
Source§fn clone(&self) -> InvestmentSet
fn clone(&self) -> InvestmentSet
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 Debug for InvestmentSet
impl Debug for InvestmentSet
Source§impl Display for InvestmentSet
impl Display for InvestmentSet
Source§impl Hash for InvestmentSet
impl Hash for InvestmentSet
Source§impl PartialEq for InvestmentSet
impl PartialEq for InvestmentSet
impl Eq for InvestmentSet
impl StructuralPartialEq for InvestmentSet
Auto Trait Implementations§
impl Freeze for InvestmentSet
impl RefUnwindSafe for InvestmentSet
impl !Send for InvestmentSet
impl !Sync for InvestmentSet
impl Unpin for InvestmentSet
impl UnwindSafe for InvestmentSet
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