MCPcopy Create free account
hub / github.com/Open-Quant/openquant / align_columns

Method align_columns

crates/openquant/src/etf_trick.rs:47–70  ·  view source on GitHub ↗
(&self, ordered_columns: &[String])

Source from the content-addressed store, hash-verified

45 }
46
47 fn align_columns(&self, ordered_columns: &[String]) -> Result<Self, String> {
48 let mut col_to_idx = HashMap::new();
49 for (i, c) in self.columns.iter().enumerate() {
50 col_to_idx.insert(c.as_str(), i);
51 }
52
53 let mut aligned_values = Vec::with_capacity(self.values.len());
54 for row in &self.values {
55 let mut out_row = Vec::with_capacity(ordered_columns.len());
56 for c in ordered_columns {
57 let idx = col_to_idx
58 .get(c.as_str())
59 .ok_or_else(|| format!("missing column '{c}' in table"))?;
60 out_row.push(row[*idx]);
61 }
62 aligned_values.push(out_row);
63 }
64
65 Ok(Self {
66 index: self.index.clone(),
67 columns: ordered_columns.to_vec(),
68 values: aligned_values,
69 })
70 }
71}
72
73#[derive(Clone, Debug)]

Callers 1

compute_etf_seriesFunction · 0.80

Calls 1

lenMethod · 0.80

Tested by

no test coverage detected