blob: 90fb702dc10ad0b67cbcc1f0f5d94de4990b5bd9 [file] [log] [blame]
William A. Kennington III14dd4eb2023-01-12 10:51:12 -08001#include <fmt/format.h>
2
3#include <stdplus/net/addr/subnet.hpp>
4
5#include <stdexcept>
6
William A. Kennington IIIa42dfb42023-06-28 17:48:32 -07007namespace stdplus
8{
9
10namespace detail
William A. Kennington III14dd4eb2023-01-12 10:51:12 -080011{
12
13void invalidSubnetPfx(std::size_t pfx)
14{
15 throw std::invalid_argument(fmt::format("Invalid subnet prefix {}", pfx));
16}
17
18template class Subnet46<In4Addr, uint8_t>;
19template class Subnet46<In6Addr, uint8_t>;
20
William A. Kennington IIIa42dfb42023-06-28 17:48:32 -070021} // namespace detail
William A. Kennington III160e3822023-06-16 17:09:43 -070022
William A. Kennington IIIa42dfb42023-06-28 17:48:32 -070023template Subnet4 FromStr<Subnet4>::operator()(std::string_view) const;
24template Subnet6 FromStr<Subnet6>::operator()(std::string_view) const;
25template SubnetAny FromStr<SubnetAny>::operator()(std::string_view) const;
William A. Kennington IIId5957f52023-06-16 16:55:01 -070026
William A. Kennington IIIa42dfb42023-06-28 17:48:32 -070027template char* ToStr<Subnet4>::operator()(char*, Subnet4) const noexcept;
28template char* ToStr<Subnet6>::operator()(char*, Subnet6) const noexcept;
29template char* ToStr<SubnetAny>::operator()(char*, SubnetAny) const noexcept;
30
31} // namespace stdplus