pub enum Flag<S: AsRef<str> = String> {
Word(S),
Blob(S),
}Expand description
Command Parameter: A flag passed to the command
Flags in duat differ from those of UNIX like operating system
commands, since a flag can show up anywhere, not just before some
standalone -- which separates flags and “not flags”. Instead,
what determines if an argument starting with -- or - is a flag
or not is if said argument is quoted:
mycmd --this-is-a-flag "--this-is not a flag" -blobflag -- --flagVariants§
Word(S)
A word flag is prefixed by -- and represents only one thing
Examples of this are the --cfg and --cfg-manifest, which
are used by the edit and open commands to open Duat
configuration files.
Blob(S)
A blob flag is prefixed by - and represents one thing per
char
An example, coming from UNIX like operating systems is rm -rf, witch will forcefully (f) remove files recursively
(r).
Implementations§
Source§impl<S: AsRef<str>> Flag<S>
impl<S: AsRef<str>> Flag<S>
Sourcepub fn as_word(self) -> Result<S, Text>
pub fn as_word(self) -> Result<S, Text>
Returns Ok only if the Flag is of type Flag::Word
Sourcepub fn as_blob(self) -> Result<S, Text>
pub fn as_blob(self) -> Result<S, Text>
Returns Ok only if the Flag is of type Flag::Blob
Sourcepub fn has_blob(&self, blob: &str) -> bool
pub fn has_blob(&self, blob: &str) -> bool
Returns true if this Flag is a Flag::Blob with all
characters in blob
Trait Implementations§
Auto Trait Implementations§
impl<S> Freeze for Flag<S>where
S: Freeze,
impl<S> RefUnwindSafe for Flag<S>where
S: RefUnwindSafe,
impl<S> Send for Flag<S>where
S: Send,
impl<S> Sync for Flag<S>where
S: Sync,
impl<S> Unpin for Flag<S>where
S: Unpin,
impl<S> UnwindSafe for Flag<S>where
S: UnwindSafe,
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.