diff options
Diffstat (limited to 'templates')
| -rw-r--r-- | templates/_commands.rs.template (renamed from templates/_registry.rs.template) | 21 | ||||
| -rw-r--r-- | templates/_override_renderer_dispatcher.rs.template (renamed from templates/_renderers.rs.template) | 9 | ||||
| -rw-r--r-- | templates/_override_renderer_entry.rs.template | 13 | ||||
| -rw-r--r-- | templates/_specific_renderer_matching.rs.template | 14 |
4 files changed, 44 insertions, 13 deletions
diff --git a/templates/_registry.rs.template b/templates/_commands.rs.template index 957484c..84d2db4 100644 --- a/templates/_registry.rs.template +++ b/templates/_commands.rs.template @@ -8,18 +8,25 @@ pub async fn jv_cmd_process_node( args: Vec<String>, ctx: JVCommandContext, renderer_override: String -) -> Result<crate::systems::cmd::renderer::JVRenderResult, crate::systems::cmd::errors::CmdProcessError> { +) -> Result<crate::systems::render::renderer::JVRenderResult, crate::systems::cmd::errors::CmdProcessError> { match node { // PROCESS // -- TEMPLATE START -- // Command `<<KEY>>` "<<NODE_NAME>>" => { - return crate::<<COMMAND_TYPE>>::process_with_renderer_flag( - args, - ctx, - renderer_override - ) - .await; + if renderer_override == "default" { + return crate::<<COMMAND_TYPE>>::process_to_render_system( + args, ctx, + ) + .await; + } else { + return crate::<<COMMAND_TYPE>>::process_to_renderer_override( + args, + ctx, + renderer_override, + ) + .await; + } } // -- TEMPLATE END -- _ => {} diff --git a/templates/_renderers.rs.template b/templates/_override_renderer_dispatcher.rs.template index 37f0f1b..64d2f40 100644 --- a/templates/_renderers.rs.template +++ b/templates/_override_renderer_dispatcher.rs.template @@ -1,16 +1,13 @@ -match renderer_str { +match renderer_override { // MATCH // -- TEMPLATE START -- "<<NAME>>" => { - Self::process_with_renderer::< - RendererType - >(args, ctx) - .await + RendererType::render(&concrete_data).await } // -- TEMPLATE END -- _ => { return Err(CmdProcessError::Render(CmdRenderError::RendererNotFound( - renderer_str.to_string(), + renderer_override.to_string(), ))); } } diff --git a/templates/_override_renderer_entry.rs.template b/templates/_override_renderer_entry.rs.template new file mode 100644 index 0000000..06b2c35 --- /dev/null +++ b/templates/_override_renderer_entry.rs.template @@ -0,0 +1,13 @@ +// Auto generated by build.rs +match type_name.as_str() { +// MATCHING +// -- TEMPLATE START -- + "JVOutputTypeName" => { + let concrete_data = data + .downcast::<JVOutputType>() + .map_err(|_| CmdProcessError::DowncastFailed)?; + include!("../render/_override_renderer_dispatcher.rs") + } + _ => return Err(CmdProcessError::NoMatchingCommand), +// -- TEMPLATE END -- +} diff --git a/templates/_specific_renderer_matching.rs.template b/templates/_specific_renderer_matching.rs.template new file mode 100644 index 0000000..9b3765f --- /dev/null +++ b/templates/_specific_renderer_matching.rs.template @@ -0,0 +1,14 @@ +match type_name_str { +// MATCHING +// -- TEMPLATE START -- + "OutputTypeName" => { + RendererType::render( + &data + .downcast::<OutputType>() + .unwrap(), + ) + .await + } +// -- TEMPLATE END -- + _ => Err(CmdRenderError::RendererNotFound(type_name)), +} |
