9#ifndef BOTAN_STL_UTIL_H_
10#define BOTAN_STL_UTIL_H_
16#include <botan/secmem.h>
22 return std::vector<uint8_t>(s.cbegin(), s.cend());
27 return std::string(bytes.cbegin(), bytes.cend());
33template<
typename K,
typename V>
51template<
typename K,
typename V>
54 const V& null_result = V())
56 auto i = mapping.find(key);
57 if(i == mapping.end())
62template<
typename K,
typename V,
typename R>
63inline R
search_map(
const std::map<K, V>& mapping,
const K& key,
64 const R& null_result,
const R& found_result)
66 auto i = mapping.find(key);
67 if(i == mapping.end())
75template<
typename K,
typename V>
77 const K& key,
const V& value)
79 multimap.insert(std::make_pair(key, value));
89 for(
size_t i = 0; i != vec.size(); ++i)
95template<
typename T,
typename Pred>
98 auto i = assoc.begin();
99 while(i != assoc.end())
void map_remove_if(Pred pred, T &assoc)
std::set< K > map_keys_as_set(const std::map< K, V > &kv)
V search_map(const std::map< K, V > &mapping, const K &key, const V &null_result=V())
void multimap_insert(std::multimap< K, V > &multimap, const K &key, const V &value)
std::string to_string(ErrorType type)
Convert an ErrorType to string.
std::vector< uint8_t > to_byte_vector(const std::string &s)
bool value_exists(const std::vector< T > &vec, const T &val)
std::vector< T, secure_allocator< T > > secure_vector