Add region_id to ProcessFlow#1314
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## flows_map #1314 +/- ##
=============================================
+ Coverage 89.70% 89.71% +0.01%
=============================================
Files 58 58
Lines 8481 8492 +11
Branches 8481 8492 +11
=============================================
+ Hits 7608 7619 +11
Misses 566 566
Partials 307 307 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
@tsmbland I know we talked about this, but I'm wondering if this is actually the right approach. Generally we only use When we add trade, there will be two categories of process flows:
I'm just wondering whether the Another way to go might be to add a getter to our two kinds of asset-like objects, e.g.: pub fn get_primary_output_flow_coeff(commodity_id: &CommodityID, output_region: &RegionID) -> Option<Flow>;I'm kind of thinking on my feet here, but you get the idea. |
|
Potentially! I'm also thinking on my feet and just wanted to see what this would look like. Based on recent correspondence with Adam I was kind of thinking that we'd inevitably have to represent trade processes as regular assets just like any other, so this seemed inevitable |
Following on from #1311, this adds a
region_idfield toProcessFlowso we can (in theory) represent flows between regions. More still to do (probably in separate PRs):ProcessFlowsMapis keyed byCommodityID, but we'll probably need to key this by(CommodityID, RegionID)to allow for multiple entries for the same commodity (i.e. out of one region and into another), or store as a vecIt's quite fiddly though and I'm a bit uneasy about this. We need to switch all flow-related stuff that's currently relying on the asset's region to rely instead on the
ProcessFlowregion, but there's no compiler safety to protect against mistakes so will require a lot of care.