pub struct ParameterServer<'s> { /* private fields */ }Expand description
Parameter server over caller-owned storage
Stores parameters in a ParameterTable the caller lends it; the table’s
length is the capacity. ParameterStorage is the usual way to produce
one, defaulting to the build-time MAX_PARAMETERS slots.
§Keyed by node — phase-426 W1
Every per-parameter method takes a NodeKey first. The slot arena is
shared (one table per executor), but a name is only ever looked up within
one node, so two nodes composed onto one executor (RFC-0047) hold
independent values for the same name — which is what upstream does, where
each node owns a table and a set of six services.
§Example
use nros_params::{
NodeKey, ParameterServer, ParameterServerOps as _, ParameterStorage, ParameterValue,
};
let mut storage = ParameterStorage::<8>::new();
let mut server = ParameterServer::new_in(storage.as_table());
let talker = NodeKey::new(0);
let listener = NodeKey::new(1);
// Declare a parameter with initial value
server.declare(talker, "rate", ParameterValue::Double(1.0));
server.declare(listener, "rate", ParameterValue::Double(2.0));
// Get parameter value
assert_eq!(
server.get(talker, "rate").and_then(|v| v.as_double()),
Some(1.0)
);
assert_eq!(
server.get(listener, "rate").and_then(|v| v.as_double()),
Some(2.0)
);
// Set parameter value
server.set(talker, "rate", ParameterValue::Double(3.0));Trait Implementations§
Source§impl<'s> ParameterServerOps<'s> for ParameterServer<'s>
impl<'s> ParameterServerOps<'s> for ParameterServer<'s>
Source§fn take_truncated_descriptions(
&mut self,
report: impl FnMut(NodeKey, &str),
) -> usize
fn take_truncated_descriptions( &mut self, report: impl FnMut(NodeKey, &str), ) -> usize
See
ParameterServer::take_truncated_descriptions in server.rs.Source§fn new_in(table: ParameterTable<'s>) -> Self
fn new_in(table: ParameterTable<'s>) -> Self
See
ParameterServer::new_in in server.rs.Source§fn set_allow_undeclared(&mut self, node: NodeKey, allow: bool)
fn set_allow_undeclared(&mut self, node: NodeKey, allow: bool)
See
ParameterServer::set_allow_undeclared in server.rs.Source§fn allows_undeclared(&self, node: NodeKey) -> bool
fn allows_undeclared(&self, node: NodeKey) -> bool
See
ParameterServer::allows_undeclared in server.rs.Source§fn set_parameter_events(&mut self, node: NodeKey, on: bool)
fn set_parameter_events(&mut self, node: NodeKey, on: bool)
See
ParameterServer::set_parameter_events in server.rs.Source§fn parameter_events_enabled(&self, node: NodeKey) -> bool
fn parameter_events_enabled(&self, node: NodeKey) -> bool
See
ParameterServer::parameter_events_enabled in server.rs.Source§fn pop_initial_parameter_event(&mut self) -> Option<PendingParameterEvent>
fn pop_initial_parameter_event(&mut self) -> Option<PendingParameterEvent>
See
ParameterServer::pop_initial_parameter_event in server.rs.Source§fn pop_parameter_event(&mut self) -> Option<PendingParameterEvent>
fn pop_parameter_event(&mut self) -> Option<PendingParameterEvent>
See
ParameterServer::pop_parameter_event in server.rs.Source§fn take_parameter_events_dropped(&mut self) -> u32
fn take_parameter_events_dropped(&mut self) -> u32
See
ParameterServer::take_parameter_events_dropped in server.rs.Source§fn set_delete_on_not_set(&mut self, node: NodeKey, on: bool)
fn set_delete_on_not_set(&mut self, node: NodeKey, on: bool)
See
ParameterServer::set_delete_on_not_set in server.rs.Source§fn declare(&mut self, node: NodeKey, name: &str, value: ParameterValue) -> bool
fn declare(&mut self, node: NodeKey, name: &str, value: ParameterValue) -> bool
See
ParameterServer::declare in server.rs.Source§fn declare_ref(
&mut self,
node: NodeKey,
name: &str,
value: &ParameterValue,
) -> bool
fn declare_ref( &mut self, node: NodeKey, name: &str, value: &ParameterValue, ) -> bool
See
ParameterServer::declare_ref in server.rs.Source§fn declare_with_descriptor(
&mut self,
node: NodeKey,
name: &str,
value: ParameterValue,
descriptor: Option<ParameterDescriptor>,
) -> bool
fn declare_with_descriptor( &mut self, node: NodeKey, name: &str, value: ParameterValue, descriptor: Option<ParameterDescriptor>, ) -> bool
See
ParameterServer::declare_with_descriptor in server.rs.Source§fn try_declare(
&mut self,
node: NodeKey,
name: &str,
value: ParameterValue,
) -> Result<(), DeclarationError>
fn try_declare( &mut self, node: NodeKey, name: &str, value: ParameterValue, ) -> Result<(), DeclarationError>
See
ParameterServer::try_declare in server.rs.Source§fn try_declare_with_descriptor(
&mut self,
node: NodeKey,
name: &str,
value: ParameterValue,
descriptor: Option<ParameterDescriptor>,
) -> Result<(), DeclarationError>
fn try_declare_with_descriptor( &mut self, node: NodeKey, name: &str, value: ParameterValue, descriptor: Option<ParameterDescriptor>, ) -> Result<(), DeclarationError>
See
ParameterServer::try_declare_with_descriptor in server.rs.Source§fn try_declare_ref(
&mut self,
node: NodeKey,
name: &str,
value: &ParameterValue,
descriptor: Option<ParameterDescriptor>,
) -> Result<(), DeclarationError>
fn try_declare_ref( &mut self, node: NodeKey, name: &str, value: &ParameterValue, descriptor: Option<ParameterDescriptor>, ) -> Result<(), DeclarationError>
See
ParameterServer::try_declare_ref in server.rs.Source§fn check_apply(
&self,
node: NodeKey,
name: &str,
value: &ParameterValue,
) -> Result<(), ParameterError>
fn check_apply( &self, node: NodeKey, name: &str, value: &ParameterValue, ) -> Result<(), ParameterError>
See
ParameterServer::check_apply in server.rs.Source§fn apply(
&mut self,
node: NodeKey,
name: &str,
value: ParameterValue,
) -> Result<(), ParameterError>
fn apply( &mut self, node: NodeKey, name: &str, value: ParameterValue, ) -> Result<(), ParameterError>
See
ParameterServer::apply in server.rs.Source§fn apply_ref(
&mut self,
node: NodeKey,
name: &str,
value: &ParameterValue,
) -> Result<(), ParameterError>
fn apply_ref( &mut self, node: NodeKey, name: &str, value: &ParameterValue, ) -> Result<(), ParameterError>
See
ParameterServer::apply_ref in server.rs.Source§fn apply_staged(
&mut self,
node: NodeKey,
name: &str,
staged: &mut ParameterValue,
) -> Result<(), ParameterError>
fn apply_staged( &mut self, node: NodeKey, name: &str, staged: &mut ParameterValue, ) -> Result<(), ParameterError>
See
ParameterServer::apply_staged in server.rs.Source§fn set_local(
&mut self,
node: NodeKey,
name: &str,
value: ParameterValue,
) -> Result<(), ParameterError>
fn set_local( &mut self, node: NodeKey, name: &str, value: ParameterValue, ) -> Result<(), ParameterError>
See
ParameterServer::set_local in server.rs.Source§fn add_on_set_parameters_callback(
&mut self,
node: NodeKey,
callback: OnSetParameterFn,
ctx: OnSetContext,
) -> Option<OnSetParameterHandle>
fn add_on_set_parameters_callback( &mut self, node: NodeKey, callback: OnSetParameterFn, ctx: OnSetContext, ) -> Option<OnSetParameterHandle>
See
ParameterServer::add_on_set_parameters_callback in server.rs.Source§fn remove_on_set_parameters_callback(
&mut self,
handle: OnSetParameterHandle,
) -> bool
fn remove_on_set_parameters_callback( &mut self, handle: OnSetParameterHandle, ) -> bool
See
ParameterServer::remove_on_set_parameters_callback in server.rs.Source§fn on_set_callbacks_free(&self) -> usize
fn on_set_callbacks_free(&self) -> usize
See
ParameterServer::on_set_callbacks_free in server.rs.Source§fn set_parameter_description(
&mut self,
node: NodeKey,
name: &str,
description: &str,
additional_constraints: &str,
) -> bool
fn set_parameter_description( &mut self, node: NodeKey, name: &str, description: &str, additional_constraints: &str, ) -> bool
See
ParameterServer::set_parameter_description in server.rs.Source§fn set_parameter_read_only(
&mut self,
node: NodeKey,
name: &str,
read_only: bool,
) -> bool
fn set_parameter_read_only( &mut self, node: NodeKey, name: &str, read_only: bool, ) -> bool
See
ParameterServer::set_parameter_read_only in server.rs.Source§fn set_parameter_integer_range(
&mut self,
node: NodeKey,
name: &str,
min: i64,
max: i64,
step: i64,
) -> bool
fn set_parameter_integer_range( &mut self, node: NodeKey, name: &str, min: i64, max: i64, step: i64, ) -> bool
See
ParameterServer::set_parameter_integer_range in server.rs.Source§fn set_parameter_float_range(
&mut self,
node: NodeKey,
name: &str,
min: f64,
max: f64,
step: f64,
) -> bool
fn set_parameter_float_range( &mut self, node: NodeKey, name: &str, min: f64, max: f64, step: f64, ) -> bool
See
ParameterServer::set_parameter_float_range in server.rs.Source§fn apply_atomically<'x, I>(
&mut self,
node: NodeKey,
items: I,
) -> Result<(), ParameterError>
fn apply_atomically<'x, I>( &mut self, node: NodeKey, items: I, ) -> Result<(), ParameterError>
See
ParameterServer::apply_atomically in server.rs.Source§fn apply_atomically_with<'x>(
&mut self,
node: NodeKey,
count: usize,
fill: impl FnMut(usize, &mut ParameterValue) -> Option<&'x str>,
) -> Result<(), ParameterError>
fn apply_atomically_with<'x>( &mut self, node: NodeKey, count: usize, fill: impl FnMut(usize, &mut ParameterValue) -> Option<&'x str>, ) -> Result<(), ParameterError>
See
ParameterServer::apply_atomically_with in server.rs.Source§fn get(&self, node: NodeKey, name: &str) -> Option<&ParameterValue>
fn get(&self, node: NodeKey, name: &str) -> Option<&ParameterValue>
See
ParameterServer::get in server.rs.Source§fn get_parameter(&self, node: NodeKey, name: &str) -> Option<&Parameter>
fn get_parameter(&self, node: NodeKey, name: &str) -> Option<&Parameter>
See
ParameterServer::get_parameter in server.rs.Source§fn get_descriptor(
&self,
node: NodeKey,
name: &str,
) -> Option<&ParameterDescriptor>
fn get_descriptor( &self, node: NodeKey, name: &str, ) -> Option<&ParameterDescriptor>
See
ParameterServer::get_descriptor in server.rs.Source§fn set(
&mut self,
node: NodeKey,
name: &str,
value: ParameterValue,
) -> Result<(), ParameterError>
fn set( &mut self, node: NodeKey, name: &str, value: ParameterValue, ) -> Result<(), ParameterError>
See
ParameterServer::set in server.rs.Source§fn set_ref(
&mut self,
node: NodeKey,
name: &str,
value: &ParameterValue,
) -> Result<(), ParameterError>
fn set_ref( &mut self, node: NodeKey, name: &str, value: &ParameterValue, ) -> Result<(), ParameterError>
See
ParameterServer::set_ref in server.rs.Source§fn unset(&mut self, node: NodeKey, name: &str) -> Result<(), ParameterError>
fn unset(&mut self, node: NodeKey, name: &str) -> Result<(), ParameterError>
See
ParameterServer::unset in server.rs.Source§fn set_or_declare(
&mut self,
node: NodeKey,
name: &str,
value: ParameterValue,
) -> Result<(), ParameterError>
fn set_or_declare( &mut self, node: NodeKey, name: &str, value: ParameterValue, ) -> Result<(), ParameterError>
See
ParameterServer::set_or_declare in server.rs.Source§fn remove(&mut self, node: NodeKey, name: &str) -> bool
fn remove(&mut self, node: NodeKey, name: &str) -> bool
See
ParameterServer::remove in server.rs.Source§fn get_type(&self, node: NodeKey, name: &str) -> Option<ParameterType>
fn get_type(&self, node: NodeKey, name: &str) -> Option<ParameterType>
See
ParameterServer::get_type in server.rs.Source§fn iter(&self, node: NodeKey) -> impl Iterator<Item = &Parameter>
fn iter(&self, node: NodeKey) -> impl Iterator<Item = &Parameter>
See
ParameterServer::iter in server.rs.Source§fn list_names(&self, node: NodeKey) -> impl Iterator<Item = &str>
fn list_names(&self, node: NodeKey) -> impl Iterator<Item = &str>
See
ParameterServer::list_names in server.rs.Source§fn list_with_prefix<'a>(
&'a self,
node: NodeKey,
prefix: &'a str,
) -> impl Iterator<Item = &'a str>
fn list_with_prefix<'a>( &'a self, node: NodeKey, prefix: &'a str, ) -> impl Iterator<Item = &'a str>
See
ParameterServer::list_with_prefix in server.rs.Source§fn get_bool(&self, node: NodeKey, name: &str) -> Option<bool>
fn get_bool(&self, node: NodeKey, name: &str) -> Option<bool>
See
ParameterServer::get_bool in server.rs.Source§fn get_integer(&self, node: NodeKey, name: &str) -> Option<i64>
fn get_integer(&self, node: NodeKey, name: &str) -> Option<i64>
See
ParameterServer::get_integer in server.rs.Source§fn get_double(&self, node: NodeKey, name: &str) -> Option<f64>
fn get_double(&self, node: NodeKey, name: &str) -> Option<f64>
See
ParameterServer::get_double in server.rs.Source§fn get_string(&self, node: NodeKey, name: &str) -> Option<&str>
fn get_string(&self, node: NodeKey, name: &str) -> Option<&str>
See
ParameterServer::get_string in server.rs.Source§fn set_bool(
&mut self,
node: NodeKey,
name: &str,
value: bool,
) -> Result<(), ParameterError>
fn set_bool( &mut self, node: NodeKey, name: &str, value: bool, ) -> Result<(), ParameterError>
See
ParameterServer::set_bool in server.rs.Source§fn set_integer(
&mut self,
node: NodeKey,
name: &str,
value: i64,
) -> Result<(), ParameterError>
fn set_integer( &mut self, node: NodeKey, name: &str, value: i64, ) -> Result<(), ParameterError>
See
ParameterServer::set_integer in server.rs.Source§fn set_double(
&mut self,
node: NodeKey,
name: &str,
value: f64,
) -> Result<(), ParameterError>
fn set_double( &mut self, node: NodeKey, name: &str, value: f64, ) -> Result<(), ParameterError>
See
ParameterServer::set_double in server.rs.Source§fn set_string(
&mut self,
node: NodeKey,
name: &str,
value: &str,
) -> Result<(), ParameterError>
fn set_string( &mut self, node: NodeKey, name: &str, value: &str, ) -> Result<(), ParameterError>
See
ParameterServer::set_string in server.rs.Source§fn declare_parameter(
&mut self,
node: NodeKey,
descriptor: ParameterDescriptor,
initial_value: Option<&ParameterValue>,
) -> Result<(), ParameterError>
fn declare_parameter( &mut self, node: NodeKey, descriptor: ParameterDescriptor, initial_value: Option<&ParameterValue>, ) -> Result<(), ParameterError>
See
ParameterServer::declare_parameter in server.rs.Source§fn get_parameter_value(
&self,
node: NodeKey,
name: &str,
) -> Option<ParameterValue>
fn get_parameter_value( &self, node: NodeKey, name: &str, ) -> Option<ParameterValue>
See
ParameterServer::get_parameter_value in server.rs.Source§fn set_parameter_value(
&mut self,
node: NodeKey,
name: &str,
value: ParameterValue,
) -> Result<(), ParameterError>
fn set_parameter_value( &mut self, node: NodeKey, name: &str, value: ParameterValue, ) -> Result<(), ParameterError>
See
ParameterServer::set_parameter_value in server.rs.Auto Trait Implementations§
impl<'s> !UnwindSafe for ParameterServer<'s>
impl<'s> Freeze for ParameterServer<'s>
impl<'s> RefUnwindSafe for ParameterServer<'s>
impl<'s> Send for ParameterServer<'s>
impl<'s> Sync for ParameterServer<'s>
impl<'s> Unpin for ParameterServer<'s>
impl<'s> UnsafeUnpin for ParameterServer<'s>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more