From 226b880fb6b63557a6c748d369cc2bcad1acc5d0 Mon Sep 17 00:00:00 2001 From: sel Date: Thu, 18 Dec 2025 17:24:24 +0100 Subject: [PATCH] refactor: moved get_template into new impl for `wgu::types::ObjectTemplate` --- server/src/lib.rs | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/server/src/lib.rs b/server/src/lib.rs index 00d3d60..a06d9a2 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -6,16 +6,18 @@ use crate::types::{ObjectInstance, ObjectTemplate}; use serde_json::{Value, json}; -fn get_template(object_type: &str) -> Result { - let modules = item_registry(); - - let template: ObjectTemplate = match modules.get(object_type) { - Some(ModuleItem::Template(template_str)) => toml::from_str(template_str).unwrap(), - Some(_) => panic!("{} is not a ModuleItem::Template", object_type), - None => return Err(format!("template {} doesn't exist", object_type)) - }; - - Ok(template) +impl ObjectTemplate { + fn from_object_type(object_type: &str) -> Result { + let modules = item_registry(); + + let template: ObjectTemplate = match modules.get(object_type) { + Some(ModuleItem::Template(template_str)) => toml::from_str(template_str).unwrap(), + Some(_) => panic!("{} is not a ModuleItem::Template", object_type), + None => return Err(format!("template {} doesn't exist", object_type)) + }; + + Ok(template) + } } impl ObjectInstance { @@ -33,7 +35,7 @@ impl ObjectInstance { pub fn validate(obj: &ObjectInstance) -> Result<(), String> { let modules = item_registry(); let object_type = &obj.object_type; - let template = get_template(object_type)?; + let template = ObjectTemplate::from_object_type(object_type)?; match modules.get(format!("{}:func:validator", object_type).as_str()) { Some(ModuleItem::Validator(validate)) => validate(&obj)?, @@ -66,7 +68,7 @@ impl ObjectInstance { pub fn transform(obj: &ObjectInstance, source: &str, destination: &str) -> Result { let object_type = &obj.object_type; - let template = get_template(object_type)?; + let template = ObjectTemplate::from_object_type(object_type)?; // assuming that the property to transform (source) is 'input.some.thing.nya', // source_parts[0] is the category (input)