diff --git a/src/context/mod.rs b/src/context/mod.rs index 63dc379..041f678 100644 --- a/src/context/mod.rs +++ b/src/context/mod.rs @@ -94,8 +94,12 @@ impl Context for EmptyContext { } /// Builtin functions can't be enabled for `EmptyContext`. - fn set_builtin_functions_disabled(&mut self, _disabled: bool) -> EvalexprResult<()> { - Err(EvalexprError::BuiltinFunctionsCannotBeEnabled) + fn set_builtin_functions_disabled(&mut self, disabled: bool) -> EvalexprResult<()> { + if disabled { + Ok(()) + } else { + Err(EvalexprError::BuiltinFunctionsCannotBeEnabled) + } } } @@ -134,8 +138,12 @@ impl Context for EmptyContextWithBuiltinFunctions { } /// Builtin functions can't be disabled for EmptyContextWithBuiltinFunctions. - fn set_builtin_functions_disabled(&mut self, _disabled: bool) -> EvalexprResult<()> { - Err(EvalexprError::BuiltinFunctionsCannotBeDisabled) + fn set_builtin_functions_disabled(&mut self, disabled: bool) -> EvalexprResult<()> { + if disabled { + Err(EvalexprError::BuiltinFunctionsCannotBeDisabled) + } else { + Ok(()) + } } } diff --git a/tests/integration.rs b/tests/integration.rs index 37158ae..c837fa2 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -1527,6 +1527,7 @@ fn test_empty_context() { "max" ))) ); + assert_eq!(context.set_builtin_functions_disabled(true), Ok(())); assert_eq!( context.set_builtin_functions_disabled(false), Err(EvalexprError::BuiltinFunctionsCannotBeEnabled) @@ -1542,9 +1543,10 @@ fn test_empty_context_with_builtin_functions() { Err(EvalexprError::FunctionIdentifierNotFound("abc".to_owned())) ); assert_eq!(eval_with_context("max(1,3)", &context), Ok(Value::Int(3))); + assert_eq!(context.set_builtin_functions_disabled(false), Ok(())); assert_eq!( context.set_builtin_functions_disabled(true), - Err(EvalexprError::BuiltinFunctionsCannotBeEnabled) + Err(EvalexprError::BuiltinFunctionsCannotBeDisabled) ); }