Files
qdrant/lib/storage/src/lib.rs
Tim Visée 8ad2b34265 Bump Rust edition to 2024 (#6042)
* 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
2025-03-21 11:38:56 +01:00

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}")))
}
}