22 for(
size_t index=0; index<file_count; index++)
29 const std::string &filename):
30 m_zip_archive(filename)
41 m_zip_archive(
data, size)
49 : m_zip_archive(std::move(other.m_zip_archive)),
50 m_name_to_index(std::move(other.m_name_to_index))
71 catch(
const std::runtime_error &)
83 return std::isspace(ch) != 0;
92 const std::string::const_iterator begin,
93 const std::string::const_iterator end)
95 const auto out_begin=std::find_if_not(begin, end,
is_space);
96 const auto out_end=std::find_if_not(
97 std::string::const_reverse_iterator(end),
98 std::string::const_reverse_iterator(out_begin),
100 return { out_begin, out_end };
105 const auto entry=
get_entry(
"META-INF/MANIFEST.MF");
107 if(!entry.has_value())
110 std::unordered_map<std::string, std::string> out;
111 std::istringstream in(*entry);
113 while(std::getline(in, line))
115 const auto key_end=std::find(line.cbegin(), line.cend(),
':');
116 if(key_end!=line.cend())
119 trim(line.cbegin(), key_end),
120 trim(std::next(key_end), line.cend()));
129 std::vector<std::string> out;
131 out.emplace_back(pair.first);