Trait app::ArgsValueParse [] [src]

pub trait ArgsValueParse<'app>: Debug {
    fn into(self) -> ArgsValue<'app>;
fn default(&self) -> Option<String>;
fn parse(
        &mut self,
        args_name: &str,
        msg: &str,
        count: &mut usize,
        len: &mut Option<usize>
    ) -> Result<(), String>;
fn check(
        &self,
        args_name: &str,
        optional: &bool,
        count: &usize,
        len: Option<&usize>
    ) -> Result<(), String>; }

You can use custom ArgsValue by impl it

  1. into(self) convert it(&mut T) to ArgsValue.

  2. default(&self) is Arguments's default value's str for help message print

  3. parse(&mut self, args_name: &str, msg: &str, count: &mut usize, len: &mut Option<usize>) maintains the value, and return message by Result<(),String>.

    args_name is the name of Args, msg is a arg need to pasre, count is the count for arg, len is the length setting fot Args, default is None(Vec<T>) or self.len()(&mut [T])

  4. check(&self, args_name: &str, optional: &bool, count: &usize, len: Option<&usize>) check value and return message by Result<(),String>, optional is the optional setting for Args

    If the Opt is not optional, and this Opt hasn't occurs, and self.default().is_none(), app will exit because of ARGS Missing.

    if value is a &mut Vec<T>, the setting of length(len) is None default,

    if value is a &mut [T], the setting of length(len) is value.len() default,

    If len.is_some() and the Args occured, app will compare it with the times Args occurs('count`)(If not equal, app will exit)

  • If the name of executable file is ap , has a Port Args(inner value is empty Vec<u16>)
ap "80" 
# vec[80]

# all types being impl `ArgsValue` will call `trim()` before call `parse::<T>()` except `char`,`String`, `PathBuf` and their `Option`, `Vec`, `Slice`.
# So have some fault-tolerant.

ap " 80  "       
# vec[80]

ap 80 "8000 " " 8080"
# Vec[8080,8000,80]

Required Methods

Implementations on Foreign Types

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<String>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<PathBuf>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<char>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<bool>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<usize>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<u8>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<u16>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<u32>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<u64>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<isize>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<i8>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<i16>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<i32>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<i64>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<f32>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<f64>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<IpAddr>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<Ipv4Addr>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<Ipv6Addr>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<SocketAddr>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<SocketAddrV4>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut Vec<SocketAddrV6>
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [String]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [PathBuf]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [char]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [bool]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [usize]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [u8]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [u16]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [u32]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [u64]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [isize]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [i8]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [i16]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [i32]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [i64]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [f32]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [f64]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [IpAddr]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [Ipv4Addr]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [Ipv6Addr]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [SocketAddr]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [SocketAddrV4]
[src]

[src]

[src]

[src]

[src]

impl<'app, 's: 'app> ArgsValueParse<'app> for &'s mut [SocketAddrV6]
[src]

[src]

[src]

[src]

[src]

Implementors