pub struct CSCDARG<'a, FT> { /* private fields */ }
Expand description
CSCDARG is Structure Data Type to Keep Track Parameter Changes Struct for CSCDARG
Implementations§
Source§impl<'a, FT> CSCDARG<'a, FT>
CSCDARG Self Implement
impl<'a, FT> CSCDARG<'a, FT>
CSCDARG Self Implement
Sourcepub fn new(func: FT) -> CSCDARG<'a, FT>
pub fn new(func: FT) -> CSCDARG<'a, FT>
CSCDARG Constructor CSCDARG::new(wrapper_func)
§example:
use csclib::*;
pub fn wrapper<'a>(args:Vec<Box<dyn Any>>)->(&'a str,usize)
{
let (a,b,c);
a=*args[0].downcast_ref::<&str>().unwrap();
b=*args[1].downcast_ref::<usize>().unwrap();
c=*args[2].downcast_ref::<usize>().unwrap();
tfunc(a,b,c)
}
pub fn tfunc(a:&str,b:usize,c:usize)->(&str,usize)
{
(a,b+b*b+c)
}
let itr;
itr=CSCDARG::new(wrapper)
.set(("a","")) // set default value for parameter 'a'
.set(("b",2_usize)) // set default value for parameter 'b'
.set(("a","CSC")) // set value for parameter 'a'
.set(("b",8_usize)) // set value for parameter 'b'
.set(("c",3_usize)) // set default value for parameter 'c'
.set(("c",5_usize)) // set value for parameter 'c'
.set(("t",13_usize)) // set default value for parameter 't', which never use
.set(("a",7_i32)) // set invalid value for parameter 'a' which cause panic
.call(); // return final result of execute wrapper function
println!("{:?}",itr);
Sourcepub fn set<G>(self, arg: (&'a str, G)) -> Selfwhere
G: 'static,
pub fn set<G>(self, arg: (&'a str, G)) -> Selfwhere
G: 'static,
Helper Functon to Set or Modify Position Parameter Each Parameter Have to Follow Position With Format (“parameter_name”,Assigned Repective Value)
§example:
// --snip--
let itr;
itr=CSCDARG::new(wrapper)
.set(("a","")) // set default value for parameter 'a'
// --snip--
.set(("t",13_usize)) // set default value for parameter 't', which never use
Sourcepub fn call<VT>(self) -> VT
pub fn call<VT>(self) -> VT
Action Functon to Execute Wrapper
§example:
// --snip--
let itr;
itr=CSCDARG::new(wrapper)
.set(("a","")) // set default value for parameter 'a'
// --snip--
.set(("t",13_usize)) // set default value for parameter 't', which never use
.call(); // return final result of execute wrapper function
println!("{:?}",itr);
Trait Implementations§
Auto Trait Implementations§
impl<'a, FT> Freeze for CSCDARG<'a, FT>where
FT: Freeze,
impl<'a, FT> !RefUnwindSafe for CSCDARG<'a, FT>
impl<'a, FT> !Send for CSCDARG<'a, FT>
impl<'a, FT> !Sync for CSCDARG<'a, FT>
impl<'a, FT> Unpin for CSCDARG<'a, FT>where
FT: Unpin,
impl<'a, FT> !UnwindSafe for CSCDARG<'a, FT>
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