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

#include <flag.h>

Public Member Functions

FlagAlias (std::string alias) &
 
Flag Alias (std::string alias) &&
 
FlagHelp (std::string) &
 
Flag Help (std::string) &&
 
FlagValueNameHint (std::string) &
 
Flag ValueNameHint (std::string) &&
 
FlagGetter (std::function< std::string()>) &
 
Flag Getter (std::function< std::string()>) &&
 
FlagSetter (std::function< Result< void >(std::string_view)>) &
 
Flag Setter (std::function< Result< void >(std::string_view)>) &&
 
FlagAddValidator (std::function< Result< void >()>) &
 
Flag AddValidator (std::function< Result< void >()>) &&
 
std::string Name () const
 
bool operator< (const Flag &other) const
 
std::string Synopsis () const
 
const std::string & Description () const
 
std::string CurrentValue () const
 
const std::string & ValueNameHint () const
 

Static Public Member Functions

static Flag StringFlag (std::string name)
 
static Flag BoolFlag (std::string name)
 

Private Types

enum class  Style { String , Bool }
 

Private Member Functions

 Flag (std::string name, Style style)
 
void ValidateAlias (const std::string &)
 
Result< size_t > Match (std::string_view current_arg, std::span< const std::string > following_args) const
 
Result< size_t > MatchStringStyleFlag (std::string_view, std::span< const std::string >) const
 
Result< size_t > MatchBoolStyleFlag (std::string_view) const
 
Result< void > SetAndValidate (std::string_view) const
 

Private Attributes

std::vector< std::string > aliases_
 
Style style_
 
std::string help_
 
std::string value_name_hint_ = "VAL"
 
std::function< std::string()> getter_ = []() { return ""; }
 
std::function< Result< void >(std::string_view value)> setter_
 
std::vector< std::function< Result< void >()> > validators_
 

Friends

void WriteGflagsCompatXml (const Flag &, std::ostream &)
 
Result< void > ConsumeFlags (const std::vector< Flag > &, std::vector< std::string > &, ConsumeFlagsOpts)
 

Member Enumeration Documentation

◆ Style

enum class cuttlefish::Flag::Style
strongprivate
Enumerator
String 
Bool 

Constructor & Destructor Documentation

◆ Flag()

cuttlefish::Flag::Flag ( std::string  name,
Flag::Style  style 
)
private

Member Function Documentation

◆ AddValidator() [1/2]

Flag & cuttlefish::Flag::AddValidator ( std::function< Result< void >()>  validator) &

◆ AddValidator() [2/2]

Flag cuttlefish::Flag::AddValidator ( std::function< Result< void >()>  validator) &&

◆ Alias() [1/2]

Flag & cuttlefish::Flag::Alias ( std::string  alias) &

◆ Alias() [2/2]

Flag cuttlefish::Flag::Alias ( std::string  alias) &&

◆ BoolFlag()

Flag cuttlefish::Flag::BoolFlag ( std::string  name)
static

◆ CurrentValue()

std::string cuttlefish::Flag::CurrentValue ( ) const

◆ Description()

const std::string & cuttlefish::Flag::Description ( ) const

◆ Getter() [1/2]

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

◆ Getter() [2/2]

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

◆ Help() [1/2]

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

◆ Help() [2/2]

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

◆ Match()

Result< size_t > cuttlefish::Flag::Match ( std::string_view  current_arg,
std::span< const std::string >  following_args 
) const
private

◆ MatchBoolStyleFlag()

Result< size_t > cuttlefish::Flag::MatchBoolStyleFlag ( std::string_view  current_arg) const
private

◆ MatchStringStyleFlag()

Result< size_t > cuttlefish::Flag::MatchStringStyleFlag ( std::string_view  current_arg,
std::span< const std::string >  following_args 
) const
private

◆ Name()

std::string cuttlefish::Flag::Name ( ) const

◆ operator<()

bool cuttlefish::Flag::operator< ( const Flag other) const
inline

◆ SetAndValidate()

Result< void > cuttlefish::Flag::SetAndValidate ( std::string_view  value) const
private

◆ Setter() [1/2]

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

◆ Setter() [2/2]

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

◆ StringFlag()

Flag cuttlefish::Flag::StringFlag ( std::string  name)
static

◆ Synopsis()

std::string cuttlefish::Flag::Synopsis ( ) const

◆ ValidateAlias()

void cuttlefish::Flag::ValidateAlias ( const std::string &  alias)
private

◆ ValueNameHint() [1/3]

const std::string & cuttlefish::Flag::ValueNameHint ( ) const

◆ ValueNameHint() [2/3]

Flag & cuttlefish::Flag::ValueNameHint ( std::string  value_name_hint) &

◆ ValueNameHint() [3/3]

Flag cuttlefish::Flag::ValueNameHint ( std::string  value_name_hint) &&

Friends And Related Function Documentation

◆ ConsumeFlags

Result< void > ConsumeFlags ( const std::vector< Flag > &  ,
std::vector< std::string > &  ,
ConsumeFlagsOpts   
)
friend

◆ WriteGflagsCompatXml

void WriteGflagsCompatXml ( const Flag ,
std::ostream &   
)
friend

Member Data Documentation

◆ aliases_

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

◆ getter_

std::function<std::string()> cuttlefish::Flag::getter_ = []() { return ""; }
private

◆ help_

std::string cuttlefish::Flag::help_
private

◆ setter_

std::function<Result<void>(std::string_view value)> cuttlefish::Flag::setter_
private

◆ style_

Style cuttlefish::Flag::style_
private

◆ validators_

std::vector<std::function<Result<void>()> > cuttlefish::Flag::validators_
private

◆ value_name_hint_

std::string cuttlefish::Flag::value_name_hint_ = "VAL"
private

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