Skip to main content

azure_sdk_cosmos/responses/
create_collection_response.rs

1use crate::collection::Collection;
2use crate::from_headers::*;
3use azure_sdk_core::errors::AzureError;
4use azure_sdk_core::etag_from_headers;
5use azure_sdk_core::session_token_from_headers;
6use chrono::{DateTime, Utc};
7use http::HeaderMap;
8
9#[derive(Debug, Clone, PartialEq)]
10pub struct CreateCollectionResponse {
11    pub collection: Collection,
12    pub charge: f64,
13    pub activity_id: uuid::Uuid,
14    pub etag: String,
15    pub session_token: String,
16    pub last_state_change: DateTime<Utc>,
17    pub schema_version: String,
18    pub service_version: String,
19    pub gateway_version: String,
20    pub alt_content_path: String,
21    pub quorum_acked_lsn: u64,
22    pub current_write_quorum: u64,
23    pub current_replica_set_size: u64,
24}
25
26impl std::convert::TryFrom<(&HeaderMap, &[u8])> for CreateCollectionResponse {
27    type Error = AzureError;
28    fn try_from(value: (&HeaderMap, &[u8])) -> Result<Self, Self::Error> {
29        let headers = value.0;
30        let body = value.1;
31
32        Ok(Self {
33            collection: serde_json::from_slice(body)?,
34            charge: request_charge_from_headers(headers)?,
35            activity_id: activity_id_from_headers(headers)?,
36            etag: etag_from_headers(headers)?,
37            session_token: session_token_from_headers(headers)?,
38            last_state_change: last_state_change_from_headers(headers)?,
39            schema_version: schema_version_from_headers(headers)?.to_owned(),
40            service_version: service_version_from_headers(headers)?.to_owned(),
41            gateway_version: gateway_version_from_headers(headers)?.to_owned(),
42            alt_content_path: alt_content_path_from_headers(headers)?.to_owned(),
43            quorum_acked_lsn: quorum_acked_lsn_from_headers(headers)?,
44            current_write_quorum: current_write_quorum_from_headers(headers)?,
45            current_replica_set_size: current_replica_set_size_from_headers(headers)?,
46        })
47    }
48}