1
0
mirror of https://github.com/actix/actix-website synced 2025-07-01 01:04:27 +02:00

update actix-web api docs

This commit is contained in:
Nikolay Kim
2018-10-10 08:38:33 -07:00
parent 29977f4930
commit bf8faa455d
2298 changed files with 129471 additions and 17241 deletions

View File

@ -1157,6 +1157,30 @@
<span id="1157">1157</span>
<span id="1158">1158</span>
<span id="1159">1159</span>
<span id="1160">1160</span>
<span id="1161">1161</span>
<span id="1162">1162</span>
<span id="1163">1163</span>
<span id="1164">1164</span>
<span id="1165">1165</span>
<span id="1166">1166</span>
<span id="1167">1167</span>
<span id="1168">1168</span>
<span id="1169">1169</span>
<span id="1170">1170</span>
<span id="1171">1171</span>
<span id="1172">1172</span>
<span id="1173">1173</span>
<span id="1174">1174</span>
<span id="1175">1175</span>
<span id="1176">1176</span>
<span id="1177">1177</span>
<span id="1178">1178</span>
<span id="1179">1179</span>
<span id="1180">1180</span>
<span id="1181">1181</span>
<span id="1182">1182</span>
<span id="1183">1183</span>
</pre><pre class="rust ">
<span class="doccomment">//! Cross-origin resource sharing (CORS) for Actix applications</span>
<span class="doccomment">//!</span>
@ -1547,12 +1571,10 @@
<span class="ident">header</span>::<span class="ident">ACCESS_CONTROL_MAX_AGE</span>,
<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">max_age</span>).<span class="ident">as_str</span>(),
);
})
.<span class="ident">if_some</span>(<span class="ident">headers</span>, <span class="op">|</span><span class="ident">headers</span>, <span class="ident">resp</span><span class="op">|</span> {
}).<span class="ident">if_some</span>(<span class="ident">headers</span>, <span class="op">|</span><span class="ident">headers</span>, <span class="ident">resp</span><span class="op">|</span> {
<span class="kw">let</span> <span class="kw">_</span> <span class="op">=</span>
<span class="ident">resp</span>.<span class="ident">header</span>(<span class="ident">header</span>::<span class="ident">ACCESS_CONTROL_ALLOW_HEADERS</span>, <span class="ident">headers</span>);
})
.<span class="ident">if_true</span>(<span class="self">self</span>.<span class="ident">inner</span>.<span class="ident">origins</span>.<span class="ident">is_all</span>(), <span class="op">|</span><span class="ident">resp</span><span class="op">|</span> {
}).<span class="ident">if_true</span>(<span class="self">self</span>.<span class="ident">inner</span>.<span class="ident">origins</span>.<span class="ident">is_all</span>(), <span class="op">|</span><span class="ident">resp</span><span class="op">|</span> {
<span class="kw">if</span> <span class="self">self</span>.<span class="ident">inner</span>.<span class="ident">send_wildcard</span> {
<span class="ident">resp</span>.<span class="ident">header</span>(<span class="ident">header</span>::<span class="ident">ACCESS_CONTROL_ALLOW_ORIGIN</span>, <span class="string">&quot;*&quot;</span>);
} <span class="kw">else</span> {
@ -1562,17 +1584,14 @@
<span class="ident">origin</span>.<span class="ident">clone</span>(),
);
}
})
.<span class="ident">if_true</span>(<span class="self">self</span>.<span class="ident">inner</span>.<span class="ident">origins</span>.<span class="ident">is_some</span>(), <span class="op">|</span><span class="ident">resp</span><span class="op">|</span> {
}).<span class="ident">if_true</span>(<span class="self">self</span>.<span class="ident">inner</span>.<span class="ident">origins</span>.<span class="ident">is_some</span>(), <span class="op">|</span><span class="ident">resp</span><span class="op">|</span> {
<span class="ident">resp</span>.<span class="ident">header</span>(
<span class="ident">header</span>::<span class="ident">ACCESS_CONTROL_ALLOW_ORIGIN</span>,
<span class="self">self</span>.<span class="ident">inner</span>.<span class="ident">origins_str</span>.<span class="ident">as_ref</span>().<span class="ident">unwrap</span>().<span class="ident">clone</span>(),
);
})
.<span class="ident">if_true</span>(<span class="self">self</span>.<span class="ident">inner</span>.<span class="ident">supports_credentials</span>, <span class="op">|</span><span class="ident">resp</span><span class="op">|</span> {
}).<span class="ident">if_true</span>(<span class="self">self</span>.<span class="ident">inner</span>.<span class="ident">supports_credentials</span>, <span class="op">|</span><span class="ident">resp</span><span class="op">|</span> {
<span class="ident">resp</span>.<span class="ident">header</span>(<span class="ident">header</span>::<span class="ident">ACCESS_CONTROL_ALLOW_CREDENTIALS</span>, <span class="string">&quot;true&quot;</span>);
})
.<span class="ident">header</span>(
}).<span class="ident">header</span>(
<span class="ident">header</span>::<span class="ident">ACCESS_CONTROL_ALLOW_METHODS</span>,
<span class="kw-2">&amp;</span><span class="self">self</span>
.<span class="ident">inner</span>
@ -1580,8 +1599,7 @@
.<span class="ident">iter</span>()
.<span class="ident">fold</span>(<span class="ident">String</span>::<span class="ident">new</span>(), <span class="op">|</span><span class="ident">s</span>, <span class="ident">v</span><span class="op">|</span> <span class="ident">s</span> <span class="op">+</span> <span class="string">&quot;,&quot;</span> <span class="op">+</span> <span class="ident">v</span>.<span class="ident">as_str</span>())
.<span class="ident">as_str</span>()[<span class="number">1</span>..],
)
.<span class="ident">finish</span>(),
).<span class="ident">finish</span>(),
))
} <span class="kw">else</span> {
<span class="comment">// Only check requests with a origin header.</span>
@ -1992,15 +2010,15 @@
<span class="kw">if</span> <span class="kw">let</span> <span class="ident">AllOrSome</span>::<span class="prelude-val">Some</span>(<span class="kw-2">ref</span> <span class="ident">origins</span>) <span class="op">=</span> <span class="ident">cors</span>.<span class="ident">origins</span> {
<span class="kw">let</span> <span class="ident">s</span> <span class="op">=</span> <span class="ident">origins</span>
.<span class="ident">iter</span>()
.<span class="ident">fold</span>(<span class="ident">String</span>::<span class="ident">new</span>(), <span class="op">|</span><span class="ident">s</span>, <span class="ident">v</span><span class="op">|</span> <span class="ident">s</span> <span class="op">+</span> <span class="kw-2">&amp;</span><span class="ident">v</span>.<span class="ident">to_string</span>());
<span class="ident">cors</span>.<span class="ident">origins_str</span> <span class="op">=</span> <span class="prelude-val">Some</span>(<span class="ident">HeaderValue</span>::<span class="ident">try_from</span>(<span class="ident">s</span>.<span class="ident">as_str</span>()).<span class="ident">unwrap</span>());
.<span class="ident">fold</span>(<span class="ident">String</span>::<span class="ident">new</span>(), <span class="op">|</span><span class="ident">s</span>, <span class="ident">v</span><span class="op">|</span> <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}, {}&quot;</span>, <span class="ident">s</span>, <span class="ident">v</span>));
<span class="ident">cors</span>.<span class="ident">origins_str</span> <span class="op">=</span> <span class="prelude-val">Some</span>(<span class="ident">HeaderValue</span>::<span class="ident">try_from</span>(<span class="kw-2">&amp;</span><span class="ident">s</span>[<span class="number">2</span>..]).<span class="ident">unwrap</span>());
}
<span class="kw">if</span> <span class="op">!</span><span class="self">self</span>.<span class="ident">expose_hdrs</span>.<span class="ident">is_empty</span>() {
<span class="ident">cors</span>.<span class="ident">expose_hdrs</span> <span class="op">=</span> <span class="prelude-val">Some</span>(
<span class="self">self</span>.<span class="ident">expose_hdrs</span>
.<span class="ident">iter</span>()
.<span class="ident">fold</span>(<span class="ident">String</span>::<span class="ident">new</span>(), <span class="op">|</span><span class="ident">s</span>, <span class="ident">v</span><span class="op">|</span> <span class="ident">s</span> <span class="op">+</span> <span class="ident">v</span>.<span class="ident">as_str</span>())[<span class="number">1</span>..]
.<span class="ident">fold</span>(<span class="ident">String</span>::<span class="ident">new</span>(), <span class="op">|</span><span class="ident">s</span>, <span class="ident">v</span><span class="op">|</span> <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}, {}&quot;</span>, <span class="ident">s</span>, <span class="ident">v</span>.<span class="ident">as_str</span>()))[<span class="number">2</span>..]
.<span class="ident">to_owned</span>(),
);
}
@ -2138,8 +2156,7 @@
.<span class="ident">header</span>(
<span class="ident">header</span>::<span class="ident">ACCESS_CONTROL_REQUEST_HEADERS</span>,
<span class="string">&quot;AUTHORIZATION,ACCEPT&quot;</span>,
)
.<span class="ident">method</span>(<span class="ident">Method</span>::<span class="ident">OPTIONS</span>)
).<span class="ident">method</span>(<span class="ident">Method</span>::<span class="ident">OPTIONS</span>)
.<span class="ident">finish</span>();
<span class="kw">let</span> <span class="ident">resp</span> <span class="op">=</span> <span class="ident">cors</span>.<span class="ident">start</span>(<span class="kw-2">&amp;</span><span class="ident">req</span>).<span class="ident">unwrap</span>().<span class="ident">response</span>();
@ -2233,12 +2250,14 @@
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_response</span>() {
<span class="kw">let</span> <span class="ident">exposed_headers</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[<span class="ident">header</span>::<span class="ident">AUTHORIZATION</span>, <span class="ident">header</span>::<span class="ident">ACCEPT</span>];
<span class="kw">let</span> <span class="ident">cors</span> <span class="op">=</span> <span class="ident">Cors</span>::<span class="ident">build</span>()
.<span class="ident">send_wildcard</span>()
.<span class="ident">disable_preflight</span>()
.<span class="ident">max_age</span>(<span class="number">3600</span>)
.<span class="ident">allowed_methods</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="ident">Method</span>::<span class="ident">GET</span>, <span class="ident">Method</span>::<span class="ident">OPTIONS</span>, <span class="ident">Method</span>::<span class="ident">POST</span>])
.<span class="ident">allowed_headers</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="ident">header</span>::<span class="ident">AUTHORIZATION</span>, <span class="ident">header</span>::<span class="ident">ACCEPT</span>])
.<span class="ident">allowed_headers</span>(<span class="ident">exposed_headers</span>.<span class="ident">clone</span>())
.<span class="ident">expose_headers</span>(<span class="ident">exposed_headers</span>.<span class="ident">clone</span>())
.<span class="ident">allowed_header</span>(<span class="ident">header</span>::<span class="ident">CONTENT_TYPE</span>)
.<span class="ident">finish</span>();
@ -2260,6 +2279,22 @@
<span class="ident">resp</span>.<span class="ident">headers</span>().<span class="ident">get</span>(<span class="ident">header</span>::<span class="ident">VARY</span>).<span class="ident">unwrap</span>().<span class="ident">as_bytes</span>()
);
{
<span class="kw">let</span> <span class="ident">headers</span> <span class="op">=</span> <span class="ident">resp</span>
.<span class="ident">headers</span>()
.<span class="ident">get</span>(<span class="ident">header</span>::<span class="ident">ACCESS_CONTROL_EXPOSE_HEADERS</span>)
.<span class="ident">unwrap</span>()
.<span class="ident">to_str</span>()
.<span class="ident">unwrap</span>()
.<span class="ident">split</span>(<span class="string">&#39;,&#39;</span>)
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">s</span><span class="op">|</span> <span class="ident">s</span>.<span class="ident">trim</span>())
.<span class="ident">collect</span>::<span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="ident">str</span><span class="op">&gt;&gt;</span>();
<span class="kw">for</span> <span class="ident">h</span> <span class="kw">in</span> <span class="ident">exposed_headers</span> {
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">headers</span>.<span class="ident">contains</span>(<span class="kw-2">&amp;</span><span class="ident">h</span>.<span class="ident">as_str</span>()));
}
}
<span class="kw">let</span> <span class="ident">resp</span>: <span class="ident">HttpResponse</span> <span class="op">=</span>
<span class="ident">HttpResponse</span>::<span class="prelude-val">Ok</span>().<span class="ident">header</span>(<span class="ident">header</span>::<span class="ident">VARY</span>, <span class="string">&quot;Accept&quot;</span>).<span class="ident">finish</span>();
<span class="kw">let</span> <span class="ident">resp</span> <span class="op">=</span> <span class="ident">cors</span>.<span class="ident">response</span>(<span class="kw-2">&amp;</span><span class="ident">req</span>, <span class="ident">resp</span>).<span class="ident">unwrap</span>().<span class="ident">response</span>();
@ -2271,16 +2306,29 @@
<span class="kw">let</span> <span class="ident">cors</span> <span class="op">=</span> <span class="ident">Cors</span>::<span class="ident">build</span>()
.<span class="ident">disable_vary_header</span>()
.<span class="ident">allowed_origin</span>(<span class="string">&quot;https://www.example.com&quot;</span>)
.<span class="ident">allowed_origin</span>(<span class="string">&quot;https://www.google.com&quot;</span>)
.<span class="ident">finish</span>();
<span class="kw">let</span> <span class="ident">resp</span>: <span class="ident">HttpResponse</span> <span class="op">=</span> <span class="ident">HttpResponse</span>::<span class="prelude-val">Ok</span>().<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">resp</span> <span class="op">=</span> <span class="ident">cors</span>.<span class="ident">response</span>(<span class="kw-2">&amp;</span><span class="ident">req</span>, <span class="ident">resp</span>).<span class="ident">unwrap</span>().<span class="ident">response</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(
<span class="kw-2">&amp;</span><span class="string">b&quot;https://www.example.com&quot;</span>[..],
<span class="ident">resp</span>.<span class="ident">headers</span>()
.<span class="ident">get</span>(<span class="ident">header</span>::<span class="ident">ACCESS_CONTROL_ALLOW_ORIGIN</span>)
.<span class="ident">unwrap</span>()
.<span class="ident">as_bytes</span>()
);
<span class="kw">let</span> <span class="ident">origins_str</span> <span class="op">=</span> <span class="ident">resp</span>
.<span class="ident">headers</span>()
.<span class="ident">get</span>(<span class="ident">header</span>::<span class="ident">ACCESS_CONTROL_ALLOW_ORIGIN</span>)
.<span class="ident">unwrap</span>()
.<span class="ident">to_str</span>()
.<span class="ident">unwrap</span>();
<span class="kw">if</span> <span class="ident">origins_str</span>.<span class="ident">starts_with</span>(<span class="string">&quot;https://www.example.com&quot;</span>) {
<span class="macro">assert_eq</span><span class="macro">!</span>(
<span class="string">&quot;https://www.example.com, https://www.google.com&quot;</span>,
<span class="ident">origins_str</span>
);
} <span class="kw">else</span> {
<span class="macro">assert_eq</span><span class="macro">!</span>(
<span class="string">&quot;https://www.google.com, https://www.example.com&quot;</span>,
<span class="ident">origins_str</span>
);
}
}
<span class="attribute">#[<span class="ident">test</span>]</span>

View File

@ -273,7 +273,6 @@
<span id="273">273</span>
<span id="274">274</span>
<span id="275">275</span>
<span id="276">276</span>
</pre><pre class="rust ">
<span class="doccomment">//! A filter for cross-site request forgery (CSRF).</span>
<span class="doccomment">//!</span>
@ -370,8 +369,7 @@
.<span class="ident">to_str</span>()
.<span class="ident">map_err</span>(<span class="op">|</span><span class="kw">_</span><span class="op">|</span> <span class="ident">CsrfError</span>::<span class="ident">BadOrigin</span>)
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">o</span><span class="op">|</span> <span class="ident">o</span>.<span class="ident">into</span>())
})
.<span class="ident">or_else</span>(<span class="op">||</span> {
}).<span class="ident">or_else</span>(<span class="op">||</span> {
<span class="ident">headers</span>.<span class="ident">get</span>(<span class="ident">header</span>::<span class="ident">REFERER</span>).<span class="ident">map</span>(<span class="op">|</span><span class="ident">referer</span><span class="op">|</span> {
<span class="ident">Uri</span>::<span class="ident">try_from</span>(<span class="ident">Bytes</span>::<span class="ident">from</span>(<span class="ident">referer</span>.<span class="ident">as_bytes</span>()))
.<span class="ident">ok</span>()
@ -528,7 +526,7 @@
<span class="string">&quot;Referer&quot;</span>,
<span class="string">&quot;https://www.example.com/some/path?query=param&quot;</span>,
).<span class="ident">method</span>(<span class="ident">Method</span>::<span class="ident">POST</span>)
.<span class="ident">finish</span>();
.<span class="ident">finish</span>();
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">csrf</span>.<span class="ident">start</span>(<span class="kw-2">&amp;</span><span class="ident">req</span>).<span class="ident">is_ok</span>());
}

View File

@ -169,7 +169,7 @@
<span class="doccomment">/// Set a header.</span>
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;cargo-clippy&quot;</span>, <span class="ident">allow</span>(<span class="ident">match_wild_err_arm</span>))]</span>
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;cargo-clippy&quot;</span>, <span class="ident">allow</span>(<span class="ident">clippy</span>::<span class="ident">match_wild_err_arm</span>))]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">header</span><span class="op">&lt;</span><span class="ident">K</span>, <span class="ident">V</span><span class="op">&gt;</span>(<span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">key</span>: <span class="ident">K</span>, <span class="ident">value</span>: <span class="ident">V</span>) <span class="op">-&gt;</span> <span class="self">Self</span>
<span class="kw">where</span>
<span class="ident">HeaderName</span>: <span class="ident">HttpTryFrom</span><span class="op">&lt;</span><span class="ident">K</span><span class="op">&gt;</span>,

View File

@ -273,7 +273,7 @@
<span class="ident">ErrorHandlers</span>::<span class="ident">new</span>()
.<span class="ident">handler</span>(<span class="ident">StatusCode</span>::<span class="ident">INTERNAL_SERVER_ERROR</span>, <span class="ident">render_500</span>),
).<span class="ident">middleware</span>(<span class="ident">MiddlewareOne</span>)
.<span class="ident">handler</span>(<span class="op">|</span><span class="kw">_</span><span class="op">|</span> <span class="ident">HttpResponse</span>::<span class="prelude-val">Ok</span>())
.<span class="ident">handler</span>(<span class="op">|</span><span class="kw">_</span><span class="op">|</span> <span class="ident">HttpResponse</span>::<span class="prelude-val">Ok</span>())
});
<span class="kw">let</span> <span class="ident">request</span> <span class="op">=</span> <span class="ident">srv</span>.<span class="ident">get</span>().<span class="ident">finish</span>().<span class="ident">unwrap</span>();

View File

@ -613,6 +613,8 @@
<span id="613">613</span>
<span id="614">614</span>
<span id="615">615</span>
<span id="616">616</span>
<span id="617">617</span>
</pre><pre class="rust ">
<span class="doccomment">//! User sessions.</span>
<span class="doccomment">//!</span>
@ -886,14 +888,17 @@
}
<span class="doccomment">/// A simple key-value storage interface that is internally used by `Session`.</span>
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">SessionImpl</span>: <span class="lifetime">&#39;static</span> {
<span class="doccomment">/// Get session value by key</span>
<span class="kw">fn</span> <span class="ident">get</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="ident">str</span><span class="op">&gt;</span>;
<span class="doccomment">/// Set session value</span>
<span class="kw">fn</span> <span class="ident">set</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">value</span>: <span class="ident">String</span>);
<span class="doccomment">/// Remove specific key from session</span>
<span class="kw">fn</span> <span class="ident">remove</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>);
<span class="doccomment">/// Remove all values from session</span>
<span class="kw">fn</span> <span class="ident">clear</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>);
<span class="doccomment">/// Write session to storage backend.</span>
@ -901,9 +906,10 @@
}
<span class="doccomment">/// Session&#39;s storage backend trait definition.</span>
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">SessionBackend</span><span class="op">&lt;</span><span class="ident">S</span><span class="op">&gt;</span>: <span class="ident">Sized</span> <span class="op">+</span> <span class="lifetime">&#39;static</span> {
<span class="doccomment">/// Session item</span>
<span class="kw">type</span> <span class="ident">Session</span>: <span class="ident">SessionImpl</span>;
<span class="doccomment">/// Future that reads session</span>
<span class="kw">type</span> <span class="ident">ReadFuture</span>: <span class="ident">Future</span><span class="op">&lt;</span><span class="ident">Item</span> <span class="op">=</span> <span class="self">Self</span>::<span class="ident">Session</span>, <span class="ident">Error</span> <span class="op">=</span> <span class="ident">Error</span><span class="op">&gt;</span>;
<span class="doccomment">/// Parse the session from request and load data from a storage backend.</span>
@ -1195,8 +1201,7 @@
<span class="ident">App</span>::<span class="ident">new</span>()
.<span class="ident">middleware</span>(<span class="ident">SessionStorage</span>::<span class="ident">new</span>(
<span class="ident">CookieSessionBackend</span>::<span class="ident">signed</span>(<span class="kw-2">&amp;</span>[<span class="number">0</span>; <span class="number">32</span>]).<span class="ident">secure</span>(<span class="bool-val">false</span>),
))
.<span class="ident">resource</span>(<span class="string">&quot;/&quot;</span>, <span class="op">|</span><span class="ident">r</span><span class="op">|</span> {
)).<span class="ident">resource</span>(<span class="string">&quot;/&quot;</span>, <span class="op">|</span><span class="ident">r</span><span class="op">|</span> {
<span class="ident">r</span>.<span class="ident">f</span>(<span class="op">|</span><span class="ident">req</span><span class="op">|</span> {
<span class="kw">let</span> <span class="kw">_</span> <span class="op">=</span> <span class="ident">req</span>.<span class="ident">session</span>().<span class="ident">set</span>(<span class="string">&quot;counter&quot;</span>, <span class="number">100</span>);
<span class="string">&quot;test&quot;</span>
@ -1215,8 +1220,7 @@
<span class="ident">App</span>::<span class="ident">new</span>()
.<span class="ident">middleware</span>(<span class="ident">SessionStorage</span>::<span class="ident">new</span>(
<span class="ident">CookieSessionBackend</span>::<span class="ident">signed</span>(<span class="kw-2">&amp;</span>[<span class="number">0</span>; <span class="number">32</span>]).<span class="ident">secure</span>(<span class="bool-val">false</span>),
))
.<span class="ident">resource</span>(<span class="string">&quot;/&quot;</span>, <span class="op">|</span><span class="ident">r</span><span class="op">|</span> {
)).<span class="ident">resource</span>(<span class="string">&quot;/&quot;</span>, <span class="op">|</span><span class="ident">r</span><span class="op">|</span> {
<span class="ident">r</span>.<span class="ident">with</span>(<span class="op">|</span><span class="ident">ses</span>: <span class="ident">Session</span><span class="op">|</span> {
<span class="kw">let</span> <span class="kw">_</span> <span class="op">=</span> <span class="ident">ses</span>.<span class="ident">set</span>(<span class="string">&quot;counter&quot;</span>, <span class="number">100</span>);
<span class="string">&quot;test&quot;</span>