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 : fields( 31 197 : core::string_view s) noexcept 32 : : fields_view_base( 33 197 : &this->fields_base::h_) 34 : , fields_base( 35 197 : detail::kind::fields, s) 36 : { 37 197 : } 38 : 39 5 : fields:: 40 : fields( 41 5 : fields&& other) noexcept 42 : : fields_view_base( 43 5 : &this->fields_base::h_) 44 5 : , fields_base(other.h_.kind) 45 : { 46 5 : swap(other); 47 5 : } 48 : 49 2 : fields:: 50 : fields( 51 2 : fields const& other) 52 : : fields_view_base( 53 2 : &this->fields_base::h_) 54 2 : , fields_base(*other.ph_) 55 : { 56 2 : } 57 : 58 2 : fields:: 59 : fields( 60 2 : fields_view const& other) 61 : : fields_view_base( 62 2 : &this->fields_base::h_) 63 2 : , fields_base(*other.ph_) 64 : { 65 2 : } 66 : 67 : fields& 68 3 : fields:: 69 : operator=( 70 : fields&& other) noexcept 71 : { 72 3 : fields tmp(std::move(other)); 73 3 : tmp.swap(*this); 74 3 : return *this; 75 : } 76 : 77 : } // http_proto 78 : } // boost 79 : 80 : #endif