diff options
| author | Sakarias Johansson <sakarias.johansson@goodbyekansas.com> | 2023-03-14 15:39:45 +0100 |
|---|---|---|
| committer | Sakarias Johansson <sakariasjohansson@hotmail.com> | 2023-03-14 20:32:13 +0100 |
| commit | 7d32f05f6123dc12ab099cf337f9abe137750e43 (patch) | |
| tree | e30ad8933ae3e71f2beec104abf1ce3bcd1aa329 /racer-tracer/src/scene.rs | |
| parent | f19c8cc40c5caf8abb4f04aaf9f91ec3a8c1ccbc (diff) | |
| download | racer-tracer-7d32f05f6123dc12ab099cf337f9abe137750e43.tar.gz racer-tracer-7d32f05f6123dc12ab099cf337f9abe137750e43.tar.xz racer-tracer-7d32f05f6123dc12ab099cf337f9abe137750e43.zip | |
🧹 Misc cleanup
- Was pointless to have one event for render and one for
cancel. Reduced it to one while fixing a minor bug.
- Remove useless dereference and borrow. Not sure how it
ended up like that.
- Moved around some code.
Diffstat (limited to 'racer-tracer/src/scene.rs')
| -rw-r--r-- | racer-tracer/src/scene.rs | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/racer-tracer/src/scene.rs b/racer-tracer/src/scene.rs index 12e2296..e730db0 100644 --- a/racer-tracer/src/scene.rs +++ b/racer-tracer/src/scene.rs @@ -12,8 +12,13 @@ pub struct Scene { } impl Scene { - #[allow(dead_code)] - pub fn try_new(loader: Box<dyn SceneLoader>) -> Result<Self, TracerError> { + pub fn try_new(config_loader: &CSLoader) -> Result<Self, TracerError> { + let loader: Box<dyn SceneLoader> = match config_loader { + CSLoader::Yml { path } => Box::new(YmlLoader::new(path.clone())), + CSLoader::Random => Box::new(Random::new()), + CSLoader::None => Box::new(NoneLoader::new()), + }; + loader.load().map(|objects| Self { objects }) } @@ -47,13 +52,3 @@ impl Hittable for Scene { pub trait SceneLoader: Send + Sync { fn load(&self) -> Result<Vec<Box<dyn Hittable>>, TracerError>; } - -impl From<&CSLoader> for Box<dyn SceneLoader> { - fn from(loader: &CSLoader) -> Self { - match loader { - CSLoader::Yml { path } => Box::new(YmlLoader::new(path.clone())), - CSLoader::Random => Box::new(Random::new()), - CSLoader::None => Box::new(NoneLoader::new()), - } - } -} |
