2023-05-22 18:45:02 +10:00

105 lines
1.8 KiB
C++

//
// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
// Official repository: https://github.com/boostorg/url
//
#ifndef BOOST_URL_GRAMMAR_IMPL_ERROR_IPP
#define BOOST_URL_GRAMMAR_IMPL_ERROR_IPP
#include <boost/url/grammar/error.hpp>
namespace boost {
namespace urls {
namespace grammar {
namespace detail {
const char*
error_cat_type::
name() const noexcept
{
return "boost.url.grammar";
}
std::string
error_cat_type::
message(int code) const
{
return message(code, nullptr, 0);
}
char const*
error_cat_type::
message(
int code,
char*,
std::size_t) const noexcept
{
switch(static_cast<error>(code))
{
default:
case error::need_more: return "need more";
case error::mismatch: return "mismatch";
case error::invalid: return "invalid";
case error::end_of_range: return "end of range";
case error::leftover: return "leftover";
case error::out_of_range: return "out of range";
}
}
error_condition
error_cat_type::
default_error_condition(
int ev) const noexcept
{
switch(static_cast<error>(ev))
{
case error::invalid:
case error::out_of_range:
return condition::fatal;
default:
return {ev, *this};
}
}
//------------------------------------------------
const char*
condition_cat_type::
name() const noexcept
{
return "boost.url.grammar";
}
std::string
condition_cat_type::
message(int code) const
{
return message(code, nullptr, 0);
}
char const*
condition_cat_type::
message(
int code, char*, std::size_t) const noexcept
{
switch(static_cast<condition>(code))
{
default:
case condition::fatal:
return "fatal condition";
}
}
} // detail
} // grammar
} // urls
} // boost
#endif