Line data Source code
1 : // 2 : // Copyright (c) 2021 Vinnie Falco (vinnie.falco@gmail.com) 3 : // 4 : // Distributed under the Boost Software License, Version 1.0. (See accompanying 5 : // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 : // 7 : // Official repository: https://github.com/CPPAlliance/http_proto 8 : // 9 : 10 : #ifndef BOOST_HTTP_PROTO_IMPL_FIELDS_IPP 11 : #define BOOST_HTTP_PROTO_IMPL_FIELDS_IPP 12 : 13 : #include <boost/http_proto/fields.hpp> 14 : #include <boost/http_proto/fields_view.hpp> 15 : #include <string> 16 : 17 : namespace boost { 18 : namespace http_proto { 19 : 20 22 : fields:: 21 22 : fields() noexcept 22 : : fields_view_base( 23 22 : &this->fields_base::h_) 24 : , fields_base( 25 22 : detail::kind::fields) 26 : { 27 22 : } 28 : 29 197 : fields:: 30 197 : fields(string_view s) noexcept 31 : : fields_view_base( 32 197 : &this->fields_base::h_) 33 : , fields_base( 34 197 : detail::kind::fields, s) 35 : { 36 197 : } 37 : 38 5 : fields:: 39 : fields( 40 5 : fields&& other) noexcept 41 : : fields_view_base( 42 5 : &this->fields_base::h_) 43 5 : , fields_base(other.h_.kind) 44 : { 45 5 : swap(other); 46 5 : } 47 : 48 2 : fields:: 49 : fields( 50 2 : fields const& other) 51 : : fields_view_base( 52 2 : &this->fields_base::h_) 53 2 : , fields_base(*other.ph_) 54 : { 55 2 : } 56 : 57 2 : fields:: 58 : fields( 59 2 : fields_view const& other) 60 : : fields_view_base( 61 2 : &this->fields_base::h_) 62 2 : , fields_base(*other.ph_) 63 : { 64 2 : } 65 : 66 : fields& 67 3 : fields:: 68 : operator=( 69 : fields&& other) noexcept 70 : { 71 3 : fields tmp(std::move(other)); 72 3 : tmp.swap(*this); 73 3 : return *this; 74 : } 75 : 76 : } // http_proto 77 : } // boost 78 : 79 : #endif