diff --git a/botserver/src/basic/keywords/switcher.rs b/botserver/src/basic/keywords/switcher.rs index 8c60d6bb..24501ca6 100644 --- a/botserver/src/basic/keywords/switcher.rs +++ b/botserver/src/basic/keywords/switcher.rs @@ -89,6 +89,8 @@ pub fn add_switcher_keyword( engine: &mut Engine, ) { let cache = state.cache.clone(); + let cache2 = state.cache.clone(); + let user_session2 = user_session.clone(); engine .register_custom_syntax( @@ -109,6 +111,25 @@ pub fn add_switcher_keyword( }, ) .expect("valid syntax registration"); + + engine + .register_custom_syntax( + ["ADD_SWITCHER", "$expr$"], + true, + move |context, inputs| { + let switcher_id = context.eval_expression_tree(&inputs[0])?.to_string(); + + add_switcher( + cache2.as_ref(), + &user_session2, + &switcher_id, + &switcher_id, + )?; + + Ok(Dynamic::UNIT) + }, + ) + .expect("valid syntax registration"); } fn add_switcher(