mirror of
https://github.com/qdrant/qdrant.git
synced 2026-08-06 01:50:57 -05:00
* Bump Rust edition to 2024 * gen is a reserved keyword now * Remove ref mut on references * Mark extern C as unsafe * Wrap unsafe function bodies in unsafe block * Geo hash implements Copy, don't reference but pass by value instead * Replace secluded self import with parent * Update execute_cluster_read_operation with new match semantics * Fix lifetime issue * Replace map_or with is_none_or * set_var is unsafe now * Reformat
51 lines
1.6 KiB
Rust
51 lines
1.6 KiB
Rust
//! Storage - is a crate which contains all service functions, abstracted from the external interface
|
|
//!
|
|
//! It provides all functions, which could be used from REST (or any other interface), but do not
|
|
//! implement any concrete interface.
|
|
|
|
use content_manager::collection_meta_ops::CollectionMetaOperations;
|
|
use content_manager::consensus_manager::ConsensusStateRef;
|
|
use content_manager::consensus_ops::ConsensusOperations;
|
|
use content_manager::errors::StorageError;
|
|
use content_manager::toc::TableOfContent;
|
|
use types::ClusterStatus;
|
|
|
|
pub mod content_manager;
|
|
pub mod dispatcher;
|
|
pub mod issues_subscribers;
|
|
pub mod rbac;
|
|
pub mod types;
|
|
|
|
pub mod serialize_peer_addresses {
|
|
use std::collections::HashMap;
|
|
|
|
use itertools::Itertools;
|
|
use serde::{self, Deserialize, Deserializer, Serialize, Serializer, de};
|
|
|
|
use crate::types::PeerAddressById;
|
|
|
|
pub fn serialize<S>(addresses: &PeerAddressById, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: Serializer,
|
|
{
|
|
let addresses: HashMap<u64, String> = addresses
|
|
.clone()
|
|
.into_iter()
|
|
.map(|(id, address)| (id, format!("{address}")))
|
|
.collect();
|
|
addresses.serialize(serializer)
|
|
}
|
|
|
|
pub fn deserialize<'de, D>(deserializer: D) -> Result<PeerAddressById, D::Error>
|
|
where
|
|
D: Deserializer<'de>,
|
|
{
|
|
let addresses: HashMap<u64, String> = HashMap::deserialize(deserializer)?;
|
|
addresses
|
|
.into_iter()
|
|
.map(|(id, address)| address.parse().map(|address| (id, address)))
|
|
.try_collect()
|
|
.map_err(|err| de::Error::custom(format!("Failed to parse uri: {err}")))
|
|
}
|
|
}
|