pub struct AppraisalOutput {
pub asset: AssetRef,
pub capacity: AssetCapacity,
pub activity: IndexMap<TimeSliceID, Activity>,
pub unmet_demand: IndexMap<TimeSliceID, Flow>,
pub metric: Option<Box<dyn MetricTrait>>,
pub coefficients: Rc<ObjectiveCoefficients>,
}Expand description
The output of investment appraisal required to compare potential investment decisions
Fields§
§asset: AssetRefThe asset being appraised
capacity: AssetCapacityThe hypothetical capacity to install
activity: IndexMap<TimeSliceID, Activity>Time slice level activity of the asset
unmet_demand: IndexMap<TimeSliceID, Flow>The hypothetical unmet demand following investment in this asset
metric: Option<Box<dyn MetricTrait>>The comparison metric to compare investment decisions
coefficients: Rc<ObjectiveCoefficients>Capacity and activity coefficients used in the appraisal
Implementations§
Source§impl AppraisalOutput
impl AppraisalOutput
Sourcefn new<T: MetricTrait>(
asset: AssetRef,
results: ResultsMap,
metric: Option<T>,
coefficients: Rc<ObjectiveCoefficients>,
) -> Self
fn new<T: MetricTrait>( asset: AssetRef, results: ResultsMap, metric: Option<T>, coefficients: Rc<ObjectiveCoefficients>, ) -> Self
Create a new AppraisalOutput
Sourcepub fn compare_metric(&self, other: &Self) -> Ordering
pub fn compare_metric(&self, other: &Self) -> Ordering
Compare this appraisal to another on the basis of the comparison metric.
Note that if the metrics are approximately equal (as determined by the [approx_eq!] macro)
then Ordering::Equal is returned. The reason for this is because different CPU
architectures may lead to subtly different values for the comparison metrics and if the
value is very similar to another, then it can lead to different decisions being made,
depending on the user’s platform (e.g. macOS ARM vs. Windows). We want to avoid this, if
possible, which is why we use a more approximate comparison.
Sourcepub fn is_valid(&self) -> bool
pub fn is_valid(&self) -> bool
Whether this AppraisalOutput is a valid output.
Specifically, it checks whether the metric is a valid value (not None) and that the
calculated capacity is greater than zero.
Auto Trait Implementations§
impl Freeze for AppraisalOutput
impl !RefUnwindSafe for AppraisalOutput
impl !Send for AppraisalOutput
impl !Sync for AppraisalOutput
impl Unpin for AppraisalOutput
impl !UnwindSafe for AppraisalOutput
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
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>
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>
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