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.