Struct ParameterServer

Source
pub struct ParameterServer {
    pub params: Arc<RwLock<Parameters>>,
    /* private fields */
}
Expand description

Parameter server.

§Example

use safe_drive::{
    context::Context,
    parameter::{ParameterServer, Value, Parameter, Descriptor},
};

// Create a context and a node.
let ctx = Context::new().unwrap();
let node = ctx.create_node("param_server_ex", None, Default::default()).unwrap();

// Create a parameter server.
let param_server = node.create_parameter_server().unwrap();
{
    // Set parameters.
    let mut params = param_server.params.write(); // Write lock

    // Statically typed parameter.
    params.set_parameter(
        "my_flag".to_string(),                     // parameter name
        Value::Bool(false),                        // value
        false,                                     // read only?
        Some("my flag's description".to_string()), // description
    ).unwrap();

    // Dynamically typed parameter.
    params.set_dynamically_typed_parameter(
        "my_dynamic_type_flag".to_string(), // parameter name
        Value::Bool(false),                 // value
        false,                              // read only?
        Some("my dynamic type flag's description".to_string()), // description
    ).unwrap();

    // Add Directly from Parameter struct
    let parameter_to_set = Parameter {
        descriptor: Descriptor {
            description: "my parameter description".to_string(),                       // parameter description
            additional_constraints: "my parameter addutional_constraints".to_string(), // parameter additional constraints
            read_only: false,                                                          // read only ?
            dynamic_typing: false,                                                     // static or Dynamic
            floating_point_range: None,                                                // floating point range
            integer_range: None,                                                       // integer point range
        },
        value: Value::Bool(false),                                                     // value
    };

    let _ = params.add_parameter(
        ("my parameter").to_string(), // name
        parameter_to_set,             // parameter
    );
}

Fields§

§params: Arc<RwLock<Parameters>>

Implementations§

Source§

impl ParameterServer

Source

pub fn wait(&mut self) -> AsyncWait<'_>

Trait Implementations§

Source§

impl Drop for ParameterServer

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.