azure_sdk_cosmos/responses/
create_collection_response.rs1use 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}