de-virtualize GenericSim

this should let us fold the GenericSim and MaterialSim traits together.
This commit is contained in:
2022-07-28 22:22:07 -07:00
parent 2d1a15eabc
commit 71ab89c4c9
8 changed files with 185 additions and 179 deletions

View File

@@ -14,18 +14,14 @@ fn main() {
let mut cache = LoaderCache::new(loader, 2, 2);
let mut frame = cache.load_first();
for meas in frame.dyn_measurements() {
for key in meas.key_value(&**frame).keys() {
print!("\"{}\",", key);
}
for meas in frame.measurements() {
print!("\"{}\",", meas.key());
}
println!("");
loop {
for meas in frame.dyn_measurements() {
for value in meas.key_value(&**frame).values() {
print!("\"{}\",", value);
}
for meas in frame.measurements() {
print!("\"{}\",", meas.value());
}
println!("");

View File

@@ -1,5 +1,5 @@
//! Post-processing tools
use coremem::meas::{self, AbstractMeasurement};
use coremem::meas;
use coremem::render::{ColorTermRenderer, Renderer as _, RenderConfig, SerializedFrame};
use coremem::sim::{GenericSim, StaticSim};
@@ -40,9 +40,6 @@ impl Frame {
pub fn measurements(&self) -> &[meas::Evaluated] {
&*self.data.measurements
}
pub fn dyn_measurements(&self) -> Vec<&dyn AbstractMeasurement> {
self.measurements().into_iter().map(|m| m as &dyn AbstractMeasurement).collect()
}
pub fn path(&self) -> &Path {
&*self.path
}
@@ -277,7 +274,10 @@ impl Viewer {
}
pub fn render(&self) {
self.renderer.render_z_slice(
&**self.viewing, self.z, &*self.viewing.dyn_measurements(), self.render_config
&**self.viewing,
self.z,
&*meas::as_dyn_measurements(self.viewing.measurements()),
self.render_config,
);
}
pub fn render_config(&mut self) -> &mut RenderConfig {