pub struct Args<'a>(/* private fields */);
Expand description
Stores an IndexMap
of Args
. See examples.
Implementations§
Source§impl<'a> Args<'a>
impl<'a> Args<'a>
Sourcepub fn new() -> Self
pub fn new() -> Self
A convenience function for making a new empty Args()
.
In truth, it just calls default()
Sourcepub fn with_capacity(capacity: usize) -> Self
pub fn with_capacity(capacity: usize) -> Self
Initializes internal hashmap with a given capacity, to reduce required memory allocations.
Potentially useful if you’re planning to call .push()
a lot.
Sourcepub fn poke<T>(&mut self, name: &'a str) -> Result<&T, DynArgError<'_>>where
T: 'static,
pub fn poke<T>(&mut self, name: &'a str) -> Result<&T, DynArgError<'_>>where
T: 'static,
Like get()
, but marks the value as used
.
Because it changes self
, it requires mutable access to self.
This, of course, may make it unusable for some use cases.
Sourcepub fn get<T>(&self, name: &'a str) -> Result<&T, DynArgError<'_>>where
T: 'static,
pub fn get<T>(&self, name: &'a str) -> Result<&T, DynArgError<'_>>where
T: 'static,
Retrieve a value by name. It’s recommended to explicitly specify type via generics, e.g.:
use dynarg::Args;
let mut args = Args::default();
args.insert_i32("meaning_of_life", 42);
let arg = args.get::<i32>("meaning_of_life");
Sourcepub fn insert(&mut self, name: &'a str, value: Box<dyn Any>)
pub fn insert(&mut self, name: &'a str, value: Box<dyn Any>)
Inserts a value with a dynamic type. Value must be wrapped in a Box<>
pointer.
BTW, when will the box
keyword syntax be stable? That would make a lot of code more elegant.
Sourcepub fn all_used(&self) -> bool
pub fn all_used(&self) -> bool
Returns true if every argument is marked as “used”. Returns false otherwise.
Sourcepub fn iter_not_used_name(&self) -> impl Iterator<Item = &str>
pub fn iter_not_used_name(&self) -> impl Iterator<Item = &str>
Returns a iterator of arguments marked as not used.
Sourcepub fn iter_used_name(&self) -> impl Iterator<Item = &str>
pub fn iter_used_name(&self) -> impl Iterator<Item = &str>
Returns an iterator of arguments marked as used.
Sourcepub fn reset_used_status(&mut self)
pub fn reset_used_status(&mut self)
Resets the used status of every argument in the IndexMap.
pub fn iter(&self) -> impl Iterator<Item = (&str, &Arg)>
Sourcepub fn insert_string(&mut self, name: &'a str, value: String)
pub fn insert_string(&mut self, name: &'a str, value: String)
Dynamically generated inserter
Sourcepub fn get_string(&mut self, name: &'a str) -> Result<&String, DynArgError<'_>>
pub fn get_string(&mut self, name: &'a str) -> Result<&String, DynArgError<'_>>
Dynamically generated getter
Sourcepub fn poke_string(&mut self, name: &'a str) -> Result<&String, DynArgError<'_>>
pub fn poke_string(&mut self, name: &'a str) -> Result<&String, DynArgError<'_>>
Dynamically generated poker
Sourcepub fn insert_f32(&mut self, name: &'a str, value: f32)
pub fn insert_f32(&mut self, name: &'a str, value: f32)
Dynamically generated inserter
Sourcepub fn get_f32(&mut self, name: &'a str) -> Result<&f32, DynArgError<'_>>
pub fn get_f32(&mut self, name: &'a str) -> Result<&f32, DynArgError<'_>>
Dynamically generated getter
Sourcepub fn poke_f32(&mut self, name: &'a str) -> Result<&f32, DynArgError<'_>>
pub fn poke_f32(&mut self, name: &'a str) -> Result<&f32, DynArgError<'_>>
Dynamically generated poker
Sourcepub fn insert_f64(&mut self, name: &'a str, value: f64)
pub fn insert_f64(&mut self, name: &'a str, value: f64)
Dynamically generated inserter
Sourcepub fn get_f64(&mut self, name: &'a str) -> Result<&f64, DynArgError<'_>>
pub fn get_f64(&mut self, name: &'a str) -> Result<&f64, DynArgError<'_>>
Dynamically generated getter
Sourcepub fn poke_f64(&mut self, name: &'a str) -> Result<&f64, DynArgError<'_>>
pub fn poke_f64(&mut self, name: &'a str) -> Result<&f64, DynArgError<'_>>
Dynamically generated poker
Sourcepub fn insert_i32(&mut self, name: &'a str, value: i32)
pub fn insert_i32(&mut self, name: &'a str, value: i32)
Dynamically generated inserter
Sourcepub fn get_i32(&mut self, name: &'a str) -> Result<&i32, DynArgError<'_>>
pub fn get_i32(&mut self, name: &'a str) -> Result<&i32, DynArgError<'_>>
Dynamically generated getter
Sourcepub fn poke_i32(&mut self, name: &'a str) -> Result<&i32, DynArgError<'_>>
pub fn poke_i32(&mut self, name: &'a str) -> Result<&i32, DynArgError<'_>>
Dynamically generated poker
Sourcepub fn insert_i64(&mut self, name: &'a str, value: i64)
pub fn insert_i64(&mut self, name: &'a str, value: i64)
Dynamically generated inserter
Sourcepub fn get_i64(&mut self, name: &'a str) -> Result<&i64, DynArgError<'_>>
pub fn get_i64(&mut self, name: &'a str) -> Result<&i64, DynArgError<'_>>
Dynamically generated getter
Sourcepub fn poke_i64(&mut self, name: &'a str) -> Result<&i64, DynArgError<'_>>
pub fn poke_i64(&mut self, name: &'a str) -> Result<&i64, DynArgError<'_>>
Dynamically generated poker
Sourcepub fn insert_bool(&mut self, name: &'a str, value: bool)
pub fn insert_bool(&mut self, name: &'a str, value: bool)
Dynamically generated inserter