61 std::string kvjoin_r )
68 std::string kvjoin_r, std::string fjoin_r )
82 struct KVMapBase :
public std::map<std::string,std::string> {
87 using map_type = std::map<std::string, std::string>;
92 :
std::map<
std::string,
std::string>( kvmap_r )
98 bool has(
const std::string & key_r )
const {
99 return( find( key_r ) != end() );
105 template<
char kv,
char f>
117 std::vector<std::string> fields;
120 for (
unsigned i = 0; i < fields.size(); ++i ) {
121 std::string::size_type pos = fields[i].find( opts_r.
_kvsplit );
122 if ( pos == std::string::npos ) {
125 ret[fields[i].substr( 0, pos )] = fields[i].substr( pos+1 );
140 for ( map_type::const_iterator it = kvmap_r.begin(); it != kvmap_r.end(); ++it ) {
141 if ( ! ret.empty() ) {
145 if ( !it->second.empty() ) {
146 ret += opts_r.
_kvjoin + it->second;
173 template<
typename KVMapOpts>
191 return join( *
this, KVMapOpts() );
198 template<
typename KVMapOpts>
String related utilities and Regular expression matching.
unsigned split(const C_Str &line_r, TOutputIterator result_r, const C_Str &sepchars_r=" \t", const Trim trim_r=NO_TRIM)
Split line_r into words.
Easy-to use interface to the ZYPP dependency resolver.
std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
A map of (key,value) strings.
std::string asString() const
KVMap(const map_type &map_r)
KVMap(const std::string &str_r)
Base class for KVMaps, (key,value) pairs.
bool has(const std::string &key_r) const
Test whether key is set.
KVMapBase(const map_type &kvmap_r)
std::map< std::string, std::string > map_type
(key,value) map type
static map_type split(const std::string &str_r, const KVMapPolicy &opts_r)
Split str_r into (key,value) map, using the separators defined by opts_r.
static std::string join(const map_type &kvmap_r, const KVMapPolicy &opts_r)
Join (key,value) map into string, using the separators defined by opts_r.
KVMapPolicy for conversion of KVMaps to/from string.
KVMapPolicy(std::string kvsplit_r, std::string fsplit_r)
KVMapPolicy(std::string kvsplit_r, std::string fsplit_r, std::string kvjoin_r)
KVMapPolicy(std::string kvsplit_r, std::string fsplit_r, std::string kvjoin_r, std::string fjoin_r)