10#include <boost/uuid/uuid.hpp>
12#include <userver/formats/common/meta.hpp>
13#include <userver/formats/parse/to.hpp>
14#include <userver/utils/boost_uuid4.hpp>
16USERVER_NAMESPACE_BEGIN
18namespace formats::parse {
21
22
23
24
25
26
27template <
typename Value>
29 std::optional<std::string> str;
31 str = value.
template As<std::string>();
32 return utils::BoostUuidFromString(*str);
33 }
catch (
const std::exception& e) {
35 throw typename Value::ParseException(
"'" + *str +
"' cannot be parsed to `boost::uuids::uuid`");
37 throw typename Value::ParseException(
"Only strings can be parsed as boost uuid");