pub struct ParameterServer { /* private fields */ }Expand description
Parameter server with static storage
Stores parameters in a fixed-size array. The capacity is determined
at compile time via the MAX_PARAMETERS constant.
§Example
use nros_params::{ParameterServer, ParameterValue};
let mut server = ParameterServer::new();
// Declare a parameter with initial value
server.declare("max_speed", ParameterValue::Double(1.0));
// Get parameter value
if let Some(value) = server.get("max_speed") {
println!("max_speed = {:?}", value.as_double());
}
// Set parameter value
server.set("max_speed", ParameterValue::Double(2.0));Implementations§
Source§impl ParameterServer
impl ParameterServer
Sourcepub fn take_dirty(&mut self) -> bool
pub fn take_dirty(&mut self) -> bool
Sourcepub fn declare(&mut self, name: &str, value: ParameterValue) -> bool
pub fn declare(&mut self, name: &str, value: ParameterValue) -> bool
Declare a new parameter with a value
If the parameter already exists, this does nothing and returns false. Returns true if the parameter was declared successfully.
Sourcepub fn declare_with_descriptor(
&mut self,
name: &str,
value: ParameterValue,
descriptor: Option<ParameterDescriptor>,
) -> bool
pub fn declare_with_descriptor( &mut self, name: &str, value: ParameterValue, descriptor: Option<ParameterDescriptor>, ) -> bool
Declare a new parameter with value and descriptor
The descriptor provides metadata like description, constraints, and read-only flag.
Sourcepub fn get(&self, name: &str) -> Option<&ParameterValue>
pub fn get(&self, name: &str) -> Option<&ParameterValue>
Get a parameter value by name
Sourcepub fn get_parameter(&self, name: &str) -> Option<&Parameter>
pub fn get_parameter(&self, name: &str) -> Option<&Parameter>
Get a parameter by name
Sourcepub fn get_descriptor(&self, name: &str) -> Option<&ParameterDescriptor>
pub fn get_descriptor(&self, name: &str) -> Option<&ParameterDescriptor>
Get a parameter descriptor by name
Sourcepub fn set(&mut self, name: &str, value: ParameterValue) -> SetParameterResult
pub fn set(&mut self, name: &str, value: ParameterValue) -> SetParameterResult
Set a parameter value
Returns the result of the set operation.
Sourcepub fn unset(&mut self, name: &str) -> SetParameterResult
pub fn unset(&mut self, name: &str) -> SetParameterResult
Unset an optional parameter (set to NotSet)
This bypasses the type check to allow optional parameters to be unset. Returns an error if the parameter is read-only.
Sourcepub fn set_or_declare(
&mut self,
name: &str,
value: ParameterValue,
) -> SetParameterResult
pub fn set_or_declare( &mut self, name: &str, value: ParameterValue, ) -> SetParameterResult
Set or declare a parameter
If the parameter exists, sets its value. Otherwise, declares it.
Sourcepub fn remove(&mut self, name: &str) -> bool
pub fn remove(&mut self, name: &str) -> bool
Remove a parameter
Returns true if the parameter was removed.
Sourcepub fn get_type(&self, name: &str) -> Option<ParameterType>
pub fn get_type(&self, name: &str) -> Option<ParameterType>
Get the type of a parameter
Sourcepub fn list_names(&self) -> impl Iterator<Item = &str>
pub fn list_names(&self) -> impl Iterator<Item = &str>
List all parameter names
Sourcepub fn list_with_prefix<'a>(
&'a self,
prefix: &'a str,
) -> impl Iterator<Item = &'a str>
pub fn list_with_prefix<'a>( &'a self, prefix: &'a str, ) -> impl Iterator<Item = &'a str>
List parameter names with a given prefix
Sourcepub fn get_integer(&self, name: &str) -> Option<i64>
pub fn get_integer(&self, name: &str) -> Option<i64>
Get an integer parameter value
Sourcepub fn get_double(&self, name: &str) -> Option<f64>
pub fn get_double(&self, name: &str) -> Option<f64>
Get a double parameter value
Sourcepub fn get_string(&self, name: &str) -> Option<&str>
pub fn get_string(&self, name: &str) -> Option<&str>
Get a string parameter value
Sourcepub fn set_bool(&mut self, name: &str, value: bool) -> SetParameterResult
pub fn set_bool(&mut self, name: &str, value: bool) -> SetParameterResult
Set a bool parameter value
Sourcepub fn set_integer(&mut self, name: &str, value: i64) -> SetParameterResult
pub fn set_integer(&mut self, name: &str, value: i64) -> SetParameterResult
Set an integer parameter value
Sourcepub fn set_double(&mut self, name: &str, value: f64) -> SetParameterResult
pub fn set_double(&mut self, name: &str, value: f64) -> SetParameterResult
Set a double parameter value
Sourcepub fn set_string(&mut self, name: &str, value: &str) -> SetParameterResult
pub fn set_string(&mut self, name: &str, value: &str) -> SetParameterResult
Set a string parameter value
Sourcepub fn declare_parameter(
&mut self,
descriptor: ParameterDescriptor,
initial_value: Option<&ParameterValue>,
) -> Result<(), SetParameterResult>
pub fn declare_parameter( &mut self, descriptor: ParameterDescriptor, initial_value: Option<&ParameterValue>, ) -> Result<(), SetParameterResult>
Declare a parameter with a descriptor and optional initial value.
This is a more comprehensive declaration method used by the typed parameter API.
§Arguments
descriptor: The metadata for the parameter.initial_value: An optional initial value for the parameter. IfNone, the parameter will be initialized toParameterValue::NotSet.
Sourcepub fn get_parameter_value(&self, name: &str) -> Option<ParameterValue>
pub fn get_parameter_value(&self, name: &str) -> Option<ParameterValue>
Get the current value of a parameter.
Returns Some(ParameterValue) if the parameter exists, None otherwise.
The ParameterValue is cloned to avoid lifetime issues with &mut self.
Sourcepub fn set_parameter_value(
&mut self,
name: &str,
value: ParameterValue,
) -> SetParameterResult
pub fn set_parameter_value( &mut self, name: &str, value: ParameterValue, ) -> SetParameterResult
Set the value of a parameter.
Returns SetParameterResult::Success on success, or an error if the parameter
is read-only, type mismatches, or is out of range.