2#ifndef poplar_OptionFlags_hpp 
    3#define poplar_OptionFlags_hpp 
    6#include <initializer_list> 
   10#include <poplar/StringRef.hpp> 
   17class OptionFlagsIterator;
 
   26  using OptionFlag = std::pair<const std::string, std::string>;
 
   27  using initializer_list = std::initializer_list<OptionFlag>;
 
   29  class iterator : 
public std::iterator<std::forward_iterator_tag, OptionFlag> {
 
   30    std::unique_ptr<core::OptionFlagsIterator> impl;
 
   32    iterator(std::unique_ptr<core::OptionFlagsIterator> p) 
noexcept;
 
   37    iterator(
const iterator &other);
 
   38    iterator &operator=(
const iterator &other);
 
   39    iterator(iterator &&other) 
noexcept;
 
   40    iterator &operator=(iterator &&other) 
noexcept;
 
   42    const OptionFlag &operator*() 
const;
 
   43    const OptionFlag *operator->() 
const;
 
   45    bool operator!=(
const iterator &other)
 const { 
return !(*
this == other); }
 
   46    iterator &operator++();
 
   47    iterator operator++(
int) {
 
   97  void set(initializer_list &&list);
 
  106  void set(StringRef option, StringRef value);
 
  113  StringRef 
at(StringRef option) 
const;
 
  124  iterator end() 
const;
 
  128  std::unique_ptr<core::OptionFlags> impl;
 
A set of option/value string flags to be used in various APIs.
Definition: OptionFlags.hpp:24
void set(initializer_list &&list)
Set option flags from an initializer list of string pairs.
OptionFlags()
Construct a set of option flags.
void clear()
Remove all set flags.
iterator begin() const
Get iterators for the currently set option flags.
void set(StringRef option, StringRef value)
Set a single option to a value.
OptionFlags(initializer_list &&list)
Construct a set of option flags from an initializer list of string pairs.
Definition: OptionFlags.hpp:83
StringRef at(StringRef option) const
Retrieves the value of the given option.
bool operator==(const OptionFlags &other) const
Option flags are an exact match.
ProfileValue represents a read-only JSON-like tree of values that are used to store the output of the...
Definition: ProfileValue.hpp:39
Poplar classes and functions.
Definition: ArrayRef.hpp:14
std::ostream & operator<<(std::ostream &os, const DebugNameAndId &dnai)
Display the path name of the DebugNameAndId.
void readJSON(StringRef string, OptionFlags &flags)
Read options from a string in JSON format.
void readJSONFromEnv(StringRef envVarName, OptionFlags &flags)
Read options from a environment variable in JSON format.