qiniu_http_client/client/callback/
context.rs1use super::{
2 super::{Authorization, Idempotent, InnerRequestParts, QueryPair},
3 simplified::SimplifiedCallbackContext,
4};
5use auto_impl::auto_impl;
6use qiniu_http::{Extensions, HeaderMap, Method, UserAgent, Version};
7
8#[auto_impl(&mut, Box)]
12pub trait CallbackContext: SimplifiedCallbackContext {
13 fn extensions(&self) -> &Extensions;
15
16 fn extensions_mut(&mut self) -> &mut Extensions;
18}
19
20#[derive(Debug)]
21pub(in super::super) struct CallbackContextImpl<'reqref, 'req, 'ext> {
22 request: &'reqref InnerRequestParts<'req>,
23 extensions: &'ext mut Extensions,
24}
25
26impl<'reqref, 'req, 'ext> CallbackContextImpl<'reqref, 'req, 'ext> {
27 pub(in super::super) fn new(request: &'reqref InnerRequestParts<'req>, extensions: &'ext mut Extensions) -> Self {
28 Self { request, extensions }
29 }
30}
31
32impl SimplifiedCallbackContext for CallbackContextImpl<'_, '_, '_> {
33 #[inline]
34 fn use_https(&self) -> bool {
35 self.request.use_https()
36 }
37
38 #[inline]
39 fn method(&self) -> &Method {
40 self.request.method()
41 }
42
43 #[inline]
44 fn version(&self) -> Version {
45 self.request.version()
46 }
47
48 #[inline]
49 fn path(&self) -> &str {
50 self.request.path()
51 }
52
53 #[inline]
54 fn query(&self) -> &str {
55 self.request.query()
56 }
57
58 #[inline]
59 fn query_pairs(&self) -> &[QueryPair] {
60 self.request.query_pairs()
61 }
62
63 #[inline]
64 fn headers(&self) -> &HeaderMap {
65 self.request.headers()
66 }
67
68 #[inline]
69 fn appended_user_agent(&self) -> &UserAgent {
70 self.request.appended_user_agent()
71 }
72
73 #[inline]
74 fn authorization(&self) -> Option<&Authorization> {
75 self.request.authorization()
76 }
77
78 #[inline]
79 fn idempotent(&self) -> Idempotent {
80 self.request.idempotent()
81 }
82}
83
84impl CallbackContext for CallbackContextImpl<'_, '_, '_> {
85 #[inline]
86 fn extensions(&self) -> &Extensions {
87 self.extensions
88 }
89
90 #[inline]
91 fn extensions_mut(&mut self) -> &mut Extensions {
92 self.extensions
93 }
94}