Android-cuttlefish cvd tool
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
cuttlefish::Flag Class Reference

#include <flag_parser.h>

Public Member Functions

FlagAlias (const FlagAlias &alias) &
 
Flag Alias (const FlagAlias &alias) &&
 
FlagHelp (const std::string &) &
 
Flag Help (const std::string &) &&
 
FlagGetter (std::function< std::string()>) &
 
Flag Getter (std::function< std::string()>) &&
 
FlagSetter (std::function< Result< void >(const FlagMatch &)>) &
 
Flag Setter (std::function< Result< void >(const FlagMatch &)>) &&
 
Result< void > Parse (std::vector< std::string > &arguments) const
 
Result< void > Parse (std::vector< std::string > &&arguments) const
 
bool WriteGflagsCompatXml (std::ostream &) const
 

Private Types

enum class  FlagProcessResult { kFlagSkip , kFlagConsumed , kFlagConsumedWithFollowing , kFlagConsumedOnlyFollowing }
 

Private Member Functions

void ValidateAlias (const FlagAlias &alias)
 
FlagUnvalidatedAlias (const FlagAlias &alias) &
 
Flag UnvalidatedAlias (const FlagAlias &alias) &&
 
Result< FlagProcessResultProcess (const std::string &argument, const std::optional< std::string > &next_arg) const
 
bool HasAlias (const FlagAlias &) const
 

Private Attributes

std::vector< FlagAliasaliases_
 
std::optional< std::string > help_
 
std::optional< std::function< std::string()> > getter_
 
std::optional< std::function< Result< void >(const FlagMatch &)> > setter_
 

Friends

std::ostream & operator<< (std::ostream &, const Flag &)
 
Flag InvalidFlagGuard ()
 
Flag UnexpectedArgumentGuard ()
 
Result< void > ConsumeFlagsConstrained (const std::vector< Flag > &flags, std::vector< std::string > &)
 

Member Enumeration Documentation

◆ FlagProcessResult

enum class cuttlefish::Flag::FlagProcessResult
strongprivate
Enumerator
kFlagSkip 
kFlagConsumed 
kFlagConsumedWithFollowing 
kFlagConsumedOnlyFollowing 

Member Function Documentation

◆ Alias() [1/2]

Flag & cuttlefish::Flag::Alias ( const FlagAlias alias) &

◆ Alias() [2/2]

Flag cuttlefish::Flag::Alias ( const FlagAlias alias) &&

◆ Getter() [1/2]

Flag & cuttlefish::Flag::Getter ( std::function< std::string()>  fn) &

◆ Getter() [2/2]

Flag cuttlefish::Flag::Getter ( std::function< std::string()>  fn) &&

◆ HasAlias()

bool cuttlefish::Flag::HasAlias ( const FlagAlias test) const
private

◆ Help() [1/2]

Flag & cuttlefish::Flag::Help ( const std::string &  help) &

◆ Help() [2/2]

Flag cuttlefish::Flag::Help ( const std::string &  help) &&

◆ Parse() [1/2]

Result< void > cuttlefish::Flag::Parse ( std::vector< std::string > &&  arguments) const

◆ Parse() [2/2]

Result< void > cuttlefish::Flag::Parse ( std::vector< std::string > &  arguments) const

◆ Process()

Result< Flag::FlagProcessResult > cuttlefish::Flag::Process ( const std::string &  argument,
const std::optional< std::string > &  next_arg 
) const
private

◆ Setter() [1/2]

Flag & cuttlefish::Flag::Setter ( std::function< Result< void >(const FlagMatch &)>  setter) &

◆ Setter() [2/2]

Flag cuttlefish::Flag::Setter ( std::function< Result< void >(const FlagMatch &)>  setter) &&

◆ UnvalidatedAlias() [1/2]

Flag & cuttlefish::Flag::UnvalidatedAlias ( const FlagAlias alias) &
private

◆ UnvalidatedAlias() [2/2]

Flag cuttlefish::Flag::UnvalidatedAlias ( const FlagAlias alias) &&
private

◆ ValidateAlias()

void cuttlefish::Flag::ValidateAlias ( const FlagAlias alias)
private

◆ WriteGflagsCompatXml()

bool cuttlefish::Flag::WriteGflagsCompatXml ( std::ostream &  out) const

Friends And Related Function Documentation

◆ ConsumeFlagsConstrained

Result< void > ConsumeFlagsConstrained ( const std::vector< Flag > &  flags,
std::vector< std::string > &   
)
friend

◆ InvalidFlagGuard

Flag InvalidFlagGuard ( )
friend

◆ operator<<

std::ostream & operator<< ( std::ostream &  ,
const Flag  
)
friend

◆ UnexpectedArgumentGuard

Flag UnexpectedArgumentGuard ( )
friend

Member Data Documentation

◆ aliases_

std::vector<FlagAlias> cuttlefish::Flag::aliases_
private

◆ getter_

std::optional<std::function<std::string()> > cuttlefish::Flag::getter_
private

◆ help_

std::optional<std::string> cuttlefish::Flag::help_
private

◆ setter_

std::optional<std::function<Result<void>(const FlagMatch&)> > cuttlefish::Flag::setter_
private

The documentation for this class was generated from the following files: