• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>Fields</title>
5<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7<link rel="home" href="../../index.html" title="Chapter 1. Boost.Beast">
8<link rel="up" href="../concepts.html" title="Concepts">
9<link rel="prev" href="DynamicBuffer.html" title="DynamicBuffer">
10<link rel="next" href="FieldsWriter.html" title="FieldsWriter">
11</head>
12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13<table cellpadding="2" width="100%"><tr>
14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
15<td align="center"><a href="../../../../../../index.html">Home</a></td>
16<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
20</tr></table>
21<hr>
22<div class="spirit-nav">
23<a accesskey="p" href="DynamicBuffer.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="FieldsWriter.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
24</div>
25<div class="section">
26<div class="titlepage"><div><div><h3 class="title">
27<a name="beast.concepts.Fields"></a><a class="link" href="Fields.html" title="Fields">Fields</a>
28</h3></div></div></div>
29<div class="warning"><table border="0" summary="Warning">
30<tr>
31<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../../../../../doc/src/images/warning.png"></td>
32<th align="left">Warning</th>
33</tr>
34<tr><td align="left" valign="top"><p>
35          The <span class="emphasis"><em>Fields</em></span> concept is deprecated and will be removed
36          in a future version. The information on this page is provided for historical
37          purposes only.
38        </p></td></tr>
39</table></div>
40<p>
41        An instance of <span class="bold"><strong>Fields</strong></span> is a container for
42        holding HTTP header fields and their values. The implementation also calls
43        upon the container to store the request target and non-standard strings for
44        method and obsolete reason phrase as needed. Types which meet these requirements
45        can always be serialized.
46      </p>
47<h5>
48<a name="beast.concepts.Fields.h0"></a>
49        <span class="phrase"><a name="beast.concepts.Fields.associated_types"></a></span><a class="link" href="Fields.html#beast.concepts.Fields.associated_types">Associated
50        Types</a>
51      </h5>
52<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
53<li class="listitem">
54            <a class="link" href="../ref/boost__beast__http__is_fields.html" title="http::is_fields"><code class="computeroutput"><span class="identifier">is_fields</span></code></a>
55          </li>
56<li class="listitem">
57            <a class="link" href="FieldsWriter.html" title="FieldsWriter"><span class="emphasis"><em>FieldsWriter</em></span></a>
58          </li>
59</ul></div>
60<h5>
61<a name="beast.concepts.Fields.h1"></a>
62        <span class="phrase"><a name="beast.concepts.Fields.requirements"></a></span><a class="link" href="Fields.html#beast.concepts.Fields.requirements">Requirements</a>
63      </h5>
64<p>
65        In this table:
66      </p>
67<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
68<li class="listitem">
69            <code class="computeroutput"><span class="identifier">F</span></code> denotes a type that
70            meets the requirements of <span class="bold"><strong>Fields</strong></span>.
71          </li>
72<li class="listitem">
73            <code class="computeroutput"><span class="identifier">W</span></code> denotes a type meeting
74            the requirements of <a class="link" href="FieldsWriter.html" title="FieldsWriter"><span class="emphasis"><em>FieldsWriter</em></span></a>.
75          </li>
76<li class="listitem">
77            <code class="computeroutput"><span class="identifier">a</span></code> denotes a value of
78            type <code class="computeroutput"><span class="identifier">F</span></code>.
79          </li>
80<li class="listitem">
81            <code class="computeroutput"><span class="identifier">c</span></code> denotes a (possibly
82            const) value of type <code class="computeroutput"><span class="identifier">F</span></code>.
83          </li>
84<li class="listitem">
85            <code class="computeroutput"><span class="identifier">b</span></code> is a value of type
86            <code class="computeroutput"><span class="keyword">bool</span></code>
87          </li>
88<li class="listitem">
89            <code class="computeroutput"><span class="identifier">n</span></code> is a value of type
90            <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">uint64_t</span><span class="special">&gt;</span></code>.
91          </li>
92<li class="listitem">
93            <code class="computeroutput"><span class="identifier">s</span></code> is a value of type
94            <a class="link" href="../ref/boost__beast__string_view.html" title="string_view"><code class="computeroutput"><span class="identifier">string_view</span></code></a>.
95          </li>
96<li class="listitem">
97            <code class="computeroutput"><span class="identifier">v</span></code> is a value of type
98            <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>
99            representing the HTTP-version.
100          </li>
101</ul></div>
102<div class="table">
103<a name="beast.concepts.Fields.valid_expressions"></a><p class="title"><b>Table 1.41. Valid expressions</b></p>
104<div class="table-contents"><table class="table" summary="Valid expressions">
105<colgroup>
106<col>
107<col>
108<col>
109</colgroup>
110<thead><tr>
111<th>
112                <p>
113                  Expression
114                </p>
115              </th>
116<th>
117                <p>
118                  Type
119                </p>
120              </th>
121<th>
122                <p>
123                  Semantics, Pre/Post-conditions
124                </p>
125              </th>
126</tr></thead>
127<tbody>
128<tr>
129<td>
130                <p>
131                  <code class="computeroutput"><span class="identifier">F</span><span class="special">::</span><span class="identifier">writer</span></code>
132                </p>
133              </td>
134<td>
135                <p>
136                  <code class="computeroutput"><span class="identifier">W</span></code>
137                </p>
138              </td>
139<td>
140                <p>
141                  A type which meets the requirements of <a class="link" href="FieldsWriter.html" title="FieldsWriter"><span class="emphasis"><em>FieldsWriter</em></span></a>.
142                </p>
143              </td>
144</tr>
145<tr>
146<td>
147                <p>
148                  <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">get_method_impl</span><span class="special">()</span></code>
149                </p>
150              </td>
151<td>
152                <p>
153                  <code class="computeroutput"><span class="identifier">string_view</span></code>
154                </p>
155              </td>
156<td>
157                <p>
158                  Returns the method text. The implementation only calls this function
159                  for request headers when retrieving the method text previously
160                  set with a call to <code class="computeroutput"><span class="identifier">set_method_impl</span></code>
161                  using a non-empty string.
162                </p>
163              </td>
164</tr>
165<tr>
166<td>
167                <p>
168                  <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">get_target_impl</span><span class="special">()</span></code>
169                </p>
170              </td>
171<td>
172                <p>
173                  <code class="computeroutput"><span class="identifier">string_view</span></code>
174                </p>
175              </td>
176<td>
177                <p>
178                  Returns the target string. The implementation only calls this function
179                  for request headers.
180                </p>
181              </td>
182</tr>
183<tr>
184<td>
185                <p>
186                  <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">get_reason_impl</span><span class="special">()</span></code>
187                </p>
188              </td>
189<td>
190                <p>
191                  <code class="computeroutput"><span class="identifier">string_view</span></code>
192                </p>
193              </td>
194<td>
195                <p>
196                  Returns the obsolete request text. The implementation only calls
197                  this for response headers when retrieving the reason text previously
198                  set with a call to <code class="computeroutput"><span class="identifier">set_reason_impl</span></code>
199                  using a non-empty string.
200                </p>
201              </td>
202</tr>
203<tr>
204<td>
205                <p>
206                  <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">get_chunked_impl</span><span class="special">()</span></code>
207                </p>
208              </td>
209<td>
210                <p>
211                  <code class="computeroutput"><span class="keyword">bool</span></code>
212                </p>
213              </td>
214<td>
215                <p>
216                  Returns <code class="computeroutput"><span class="keyword">true</span></code> if the
217                  <a href="https://tools.ietf.org/html/rfc7230#section-3.3.1" target="_top"><span class="bold"><strong>Transfer-Encoding</strong></span></a> field value indicates
218                  that the payload is chunk encoded. Both of these conditions must
219                  be true:
220                </p>
221                <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
222<li class="listitem">
223                      The Transfer-Encoding field is present in the message.
224                    </li>
225<li class="listitem">
226                      The last item in value of the field is "chunked".
227                    </li>
228</ul></div>
229              </td>
230</tr>
231<tr>
232<td>
233                <p>
234                  <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">get_keep_alive_impl</span><span class="special">(</span><span class="identifier">v</span><span class="special">)</span></code>
235                </p>
236              </td>
237<td>
238                <p>
239                  <code class="computeroutput"><span class="keyword">bool</span></code>
240                </p>
241              </td>
242<td>
243                <p>
244                  Returns <code class="computeroutput"><span class="keyword">true</span></code> if the
245                  semantics of the <a href="https://tools.ietf.org/html/rfc7230#section-6.1" target="_top"><span class="bold"><strong>Connection</strong></span></a> field and version indicate
246                  that the connection should remain open after the corresponding
247                  response is transmitted or received:
248                </p>
249                <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
250<li class="listitem">
251                      If <code class="computeroutput"><span class="special">(</span><span class="identifier">v</span>
252                      <span class="special">&lt;</span> <span class="number">11</span><span class="special">)</span></code> the function returns <code class="computeroutput"><span class="keyword">true</span></code> if the "keep-alive"
253                      token is present in the Connection field value. Otherwise the
254                      function returns <code class="computeroutput"><span class="keyword">false</span></code>.
255                    </li>
256<li class="listitem">
257                      If <code class="computeroutput"><span class="special">(</span><span class="identifier">v</span>
258                      <span class="special">==</span> <span class="number">11</span><span class="special">)</span></code>, the function returns <code class="computeroutput"><span class="keyword">false</span></code> if the "close"
259                      token is present in the Connection field value. Otherwise the
260                      function returns <code class="computeroutput"><span class="keyword">true</span></code>.
261                    </li>
262</ul></div>
263              </td>
264</tr>
265<tr>
266<td>
267                <p>
268                  <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">has_content_length</span><span class="special">()</span></code>
269                </p>
270              </td>
271<td>
272                <p>
273                  <code class="computeroutput"><span class="keyword">bool</span></code>
274                </p>
275              </td>
276<td>
277                <p>
278                  Returns <code class="computeroutput"><span class="keyword">true</span></code> if the
279                  <a href="https://tools.ietf.org/html/rfc7230#section-3.3.2" target="_top"><span class="bold"><strong>Content-Length</strong></span></a> field is present.
280                </p>
281              </td>
282</tr>
283<tr>
284<td>
285                <p>
286                  <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">set_method_impl</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
287                </p>
288              </td>
289<td>
290              </td>
291<td>
292                <p>
293                  Stores a copy of <code class="computeroutput"><span class="identifier">s</span></code>
294                  as the method text, or erases the previously stored value if <code class="computeroutput"><span class="identifier">s</span></code> is empty. The implementation
295                  only calls this function for request headers. This function may
296                  throw <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">invalid_argument</span></code> if the operation
297                  is not supported by the container.
298                </p>
299              </td>
300</tr>
301<tr>
302<td>
303                <p>
304                  <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">set_target_impl</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
305                </p>
306              </td>
307<td>
308              </td>
309<td>
310                <p>
311                  Stores a copy of <code class="computeroutput"><span class="identifier">s</span></code>
312                  as the target, or erases the previously stored value if <code class="computeroutput"><span class="identifier">s</span></code> is empty. The implementation
313                  only calls this function for request headers. This function may
314                  throw <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">invalid_argument</span></code> if the operation
315                  is not supported by the container.
316                </p>
317              </td>
318</tr>
319<tr>
320<td>
321                <p>
322                  <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">set_reason_impl</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
323                </p>
324              </td>
325<td>
326              </td>
327<td>
328                <p>
329                  Stores a copy of <code class="computeroutput"><span class="identifier">s</span></code>
330                  as the reason text, or erases the previously stored value of the
331                  reason text if <code class="computeroutput"><span class="identifier">s</span></code>
332                  is empty. The implementation only calls this function for request
333                  headers. This function may throw <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">invalid_argument</span></code>
334                  if the operation is not supported by the container.
335                </p>
336              </td>
337</tr>
338<tr>
339<td>
340                <p>
341                  <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">set_chunked_impl</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code>
342                </p>
343              </td>
344<td>
345              </td>
346<td>
347                <p>
348                  Adjusts the <a href="https://tools.ietf.org/html/rfc7230#section-3.3.1" target="_top"><span class="bold"><strong>Transfer-Encoding</strong></span></a> field value as
349                  follows:
350                </p>
351                <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
352<li class="listitem">
353                      If <code class="computeroutput"><span class="identifier">b</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>, the "chunked"
354                      token is appended to the list of encodings if it does not already
355                      appear last in the list. If the Transfer-Encoding field is
356                      absent, the field will be inserted to the container with the
357                      value "chunked".
358                    </li>
359<li class="listitem">
360                      If <code class="computeroutput"><span class="identifier">b</span></code> is `false,
361                      the "chunked" token is removed from the list of encodings
362                      if it appears last in the list. If the result of the removal
363                      leaves the list of encodings empty, the Transfer-Encoding field
364                      shall not appear when the associated <a class="link" href="FieldsWriter.html" title="FieldsWriter"><span class="emphasis"><em>FieldsWriter</em></span></a>
365                      serializes the fields.
366                    </li>
367</ul></div>
368                <p>
369                  If the result of adjusting the field value produces an empty string,
370                  the field is removed from the container.
371                </p>
372              </td>
373</tr>
374<tr>
375<td>
376                <p>
377                  <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">set_content_length_impl</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>
378                </p>
379              </td>
380<td>
381              </td>
382<td>
383                <p>
384                  Adjusts the <a href="https://tools.ietf.org/html/rfc7230#section-3.3.2" target="_top"><span class="bold"><strong>Content-Length</strong></span></a> field value as follows:
385                </p>
386                <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
387<li class="listitem">
388                      If <code class="computeroutput"><span class="identifier">n</span></code> contains
389                      a value, the Content-Length field will be set to the text representation
390                      of the value. Any previous Content-Length fields are removed
391                      from the container.
392                    </li>
393<li class="listitem">
394                      If <code class="computeroutput"><span class="identifier">n</span></code> does not
395                      contain a value, any present Content-Length fields are removed
396                      from the container.
397                    </li>
398</ul></div>
399              </td>
400</tr>
401<tr>
402<td>
403                <p>
404                  <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">set_keep_alive_impl</span><span class="special">(</span><span class="identifier">v</span><span class="special">,</span><span class="identifier">b</span><span class="special">)</span></code>
405                </p>
406              </td>
407<td>
408              </td>
409<td>
410                <p>
411                  Adjusts the <a href="https://tools.ietf.org/html/rfc7230#section-6.1" target="_top"><span class="bold"><strong>Connection</strong></span></a> field value depending
412                  on the values of <code class="computeroutput"><span class="identifier">v</span></code>
413                  and <code class="computeroutput"><span class="identifier">b</span></code>. The field
414                  value is treated as <a href="https://tools.ietf.org/html/rfc7230#section-6.1" target="_top"><span class="emphasis"><em>connection-option</em></span></a>
415                  (rfc7230).
416                </p>
417                <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
418<li class="listitem">
419                      If <code class="computeroutput"><span class="special">(</span><span class="identifier">v</span>
420                      <span class="special">&lt;</span> <span class="number">11</span>
421                      <span class="special">&amp;&amp;</span> <span class="identifier">b</span><span class="special">)</span></code>, then all "close"
422                      tokens present in the value are removed, and the "keep-alive"
423                      token is added to the value if it is not already present.
424                    </li>
425<li class="listitem">
426                      If <code class="computeroutput"><span class="special">(</span><span class="identifier">v</span>
427                      <span class="special">&lt;</span> <span class="number">11</span>
428                      <span class="special">&amp;&amp;</span> <span class="special">!</span>
429                      <span class="identifier">b</span><span class="special">)</span></code>,
430                      then all "close" and "keep-alive" tokens
431                      present in the value are removed.
432                    </li>
433<li class="listitem">
434                      If <code class="computeroutput"><span class="special">(</span><span class="identifier">v</span>
435                      <span class="special">==</span> <span class="number">11</span>
436                      <span class="special">&amp;&amp;</span> <span class="identifier">b</span><span class="special">)</span></code>, then all "keep-alive"
437                      and "close" tokens present in the value are removed.
438                    </li>
439<li class="listitem">
440                      If <code class="computeroutput"><span class="special">(</span><span class="identifier">v</span>
441                      <span class="special">==</span> <span class="number">11</span>
442                      <span class="special">&amp;&amp;</span> <span class="special">!</span>
443                      <span class="identifier">b</span><span class="special">)</span></code>,
444                      then all "keep-alive" tokens present in the value
445                      are removed, and the "close" token is added to the
446                      value if it is not already present.
447                    </li>
448</ul></div>
449                <p>
450                  If the result of adjusting the field value produces an empty string,
451                  the field is removed from the container.
452                </p>
453              </td>
454</tr>
455</tbody>
456</table></div>
457</div>
458<br class="table-break"><h5>
459<a name="beast.concepts.Fields.h2"></a>
460        <span class="phrase"><a name="beast.concepts.Fields.exemplar"></a></span><a class="link" href="Fields.html#beast.concepts.Fields.exemplar">Exemplar</a>
461      </h5>
462<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">Fields</span>
463<span class="special">{</span>
464<span class="keyword">public</span><span class="special">:</span>
465    <span class="comment">/// Constructed as needed when fields are serialized</span>
466    <span class="keyword">struct</span> <span class="identifier">writer</span><span class="special">;</span>
467
468<span class="keyword">protected</span><span class="special">:</span>
469    <span class="comment">/** Returns the request-method string.
470
471        @note Only called for requests.
472    */</span>
473    <span class="identifier">string_view</span>
474    <span class="identifier">get_method_impl</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
475
476    <span class="comment">/** Returns the request-target string.
477
478        @note Only called for requests.
479    */</span>
480    <span class="identifier">string_view</span>
481    <span class="identifier">get_target_impl</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
482
483    <span class="comment">/** Returns the response reason-phrase string.
484
485        @note Only called for responses.
486    */</span>
487    <span class="identifier">string_view</span>
488    <span class="identifier">get_reason_impl</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
489
490    <span class="comment">/** Returns the chunked Transfer-Encoding setting
491    */</span>
492    <span class="keyword">bool</span>
493    <span class="identifier">get_chunked_impl</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
494
495    <span class="comment">/** Returns the keep-alive setting
496    */</span>
497    <span class="keyword">bool</span>
498    <span class="identifier">get_keep_alive_impl</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">version</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
499
500    <span class="comment">/** Returns `true` if the Content-Length field is present.
501    */</span>
502    <span class="keyword">bool</span>
503    <span class="identifier">has_content_length_impl</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
504
505    <span class="comment">/** Set or clear the method string.
506
507        @note Only called for requests.
508    */</span>
509    <span class="keyword">void</span>
510    <span class="identifier">set_method_impl</span><span class="special">(</span><span class="identifier">string_view</span> <span class="identifier">s</span><span class="special">);</span>
511
512    <span class="comment">/** Set or clear the target string.
513
514        @note Only called for requests.
515    */</span>
516    <span class="keyword">void</span>
517    <span class="identifier">set_target_impl</span><span class="special">(</span><span class="identifier">string_view</span> <span class="identifier">s</span><span class="special">);</span>
518
519    <span class="comment">/** Set or clear the reason string.
520
521        @note Only called for responses.
522    */</span>
523    <span class="keyword">void</span>
524    <span class="identifier">set_reason_impl</span><span class="special">(</span><span class="identifier">string_view</span> <span class="identifier">s</span><span class="special">);</span>
525
526    <span class="comment">/** Sets or clears the chunked Transfer-Encoding value
527    */</span>
528    <span class="keyword">void</span>
529    <span class="identifier">set_chunked_impl</span><span class="special">(</span><span class="keyword">bool</span> <span class="identifier">value</span><span class="special">);</span>
530
531    <span class="comment">/** Sets or clears the Content-Length field
532    */</span>
533    <span class="keyword">void</span>
534    <span class="identifier">set_content_length_impl</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">uint64_t</span><span class="special">&gt;);</span>
535
536    <span class="comment">/** Adjusts the Connection field
537    */</span>
538    <span class="keyword">void</span>
539    <span class="identifier">set_keep_alive_impl</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">version</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">keep_alive</span><span class="special">);</span>
540<span class="special">};</span>
541
542<span class="keyword">static_assert</span><span class="special">(</span><span class="identifier">is_fields</span><span class="special">&lt;</span><span class="identifier">Fields</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">,</span>
543    <span class="string">"Fields type requirements not met"</span><span class="special">);</span>
544</pre>
545<h5>
546<a name="beast.concepts.Fields.h3"></a>
547        <span class="phrase"><a name="beast.concepts.Fields.models"></a></span><a class="link" href="Fields.html#beast.concepts.Fields.models">Models</a>
548      </h5>
549<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
550<li class="listitem">
551            <a class="link" href="../ref/boost__beast__http__basic_fields.html" title="http::basic_fields"><code class="computeroutput"><span class="identifier">basic_fields</span></code></a>
552          </li>
553<li class="listitem">
554            <a class="link" href="../ref/boost__beast__http__fields.html" title="http::fields"><code class="computeroutput"><span class="identifier">fields</span></code></a>
555          </li>
556</ul></div>
557</div>
558<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
559<td align="left"></td>
560<td align="right"><div class="copyright-footer">Copyright © 2016-2019 Vinnie
561      Falco<p>
562        Distributed under the Boost Software License, Version 1.0. (See accompanying
563        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
564      </p>
565</div></td>
566</tr></table>
567<hr>
568<div class="spirit-nav">
569<a accesskey="p" href="DynamicBuffer.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="FieldsWriter.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
570</div>
571</body>
572</html>
573