pub struct ResponsePolicy { /* private fields */ }Expand description
Complete checked-response policy.
Implementations§
Source§impl ResponsePolicy
impl ResponsePolicy
Sourcepub fn new(
success_statuses: &'static [StatusCode],
content_type: ContentTypePolicy,
body: ResponseBodyPolicy,
max_body_bytes: usize,
) -> Result<Self, ResponsePolicyValidationError>
pub fn new( success_statuses: &'static [StatusCode], content_type: ContentTypePolicy, body: ResponseBodyPolicy, max_body_bytes: usize, ) -> Result<Self, ResponsePolicyValidationError>
Creates a complete policy without implicit status, media, or body defaults.
Examples found in repository?
examples/prepared_request.rs (lines 50-55)
31 fn prepare<'storage>(
32 &self,
33 storage: PreparationStorage<'storage>,
34 ) -> Result<PreparedRequest<'storage>, Self::Error> {
35 let (target_storage, _body_storage) = storage.into_parts();
36 let target = target_storage
37 .get_mut(..17)
38 .ok_or(PrepareError::TargetBuffer)?;
39 target.copy_from_slice(b"/resources?page=1");
40 let target = core::str::from_utf8(target).map_err(|_| PrepareError::InvalidTarget)?;
41 let target = RequestTarget::new(target).map_err(|_| PrepareError::InvalidTarget)?;
42 let request = TransportRequest::new(Method::Get, target);
43 let metadata = OperationMetadata::new(
44 OperationImpact::ReadOnly,
45 RequestSemantics::Safe,
46 RetryEligibility::ExplicitPolicy,
47 CostIntent::NoKnownCost,
48 )
49 .map_err(|_| PrepareError::InvalidMetadata)?;
50 let response_policy = ResponsePolicy::new(
51 &OK_STATUS,
52 ContentTypePolicy::Required(&JSON_MEDIA),
53 ResponseBodyPolicy::Required,
54 65_536,
55 )
56 .map_err(|_| PrepareError::InvalidResponsePolicy)?;
57 let endpoint =
58 EndpointIdentity::new(EndpointScheme::Https, "api.example.invalid", 443, "/v1")
59 .map_err(|_| PrepareError::InvalidEndpoint)?;
60 Ok(PreparedRequest::new(
61 request,
62 ProviderService::new(Provider::Hetzner, ApiFamily::Cloud, endpoint),
63 metadata,
64 response_policy,
65 ))
66 }Sourcepub const fn success_statuses(self) -> &'static [StatusCode]
pub const fn success_statuses(self) -> &'static [StatusCode]
Returns expected success statuses.
Sourcepub const fn content_type_policy(self) -> ContentTypePolicy
pub const fn content_type_policy(self) -> ContentTypePolicy
Returns response content-type policy.
Sourcepub const fn body_policy(self) -> ResponseBodyPolicy
pub const fn body_policy(self) -> ResponseBodyPolicy
Returns response-body policy.
Sourcepub const fn max_body_bytes(self) -> usize
pub const fn max_body_bytes(self) -> usize
Returns maximum admitted initialized response bytes.
Sourcepub fn validate<'body>(
self,
response: TransportResponse<'body>,
) -> Result<CheckedResponse<'body>, ResponsePolicyError>
pub fn validate<'body>( self, response: TransportResponse<'body>, ) -> Result<CheckedResponse<'body>, ResponsePolicyError>
Checks status, initialized length, body shape, and content type.
Trait Implementations§
Source§impl Clone for ResponsePolicy
impl Clone for ResponsePolicy
Source§fn clone(&self) -> ResponsePolicy
fn clone(&self) -> ResponsePolicy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for ResponsePolicy
Source§impl Debug for ResponsePolicy
impl Debug for ResponsePolicy
impl Eq for ResponsePolicy
Source§impl PartialEq for ResponsePolicy
impl PartialEq for ResponsePolicy
impl StructuralPartialEq for ResponsePolicy
Auto Trait Implementations§
impl Freeze for ResponsePolicy
impl RefUnwindSafe for ResponsePolicy
impl Send for ResponsePolicy
impl Sync for ResponsePolicy
impl Unpin for ResponsePolicy
impl UnsafeUnpin for ResponsePolicy
impl UnwindSafe for ResponsePolicy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more