Spaces:
Build error
Build error
use std::collections::{HashMap, HashSet}; | |
use serde::{Deserialize, Serialize}; | |
use validator::Validate; | |
use crate::collection::payload_index_schema::PayloadIndexSchema; | |
use crate::config::CollectionConfigInternal; | |
use crate::shards::replica_set::ReplicaState; | |
use crate::shards::resharding::ReshardState; | |
use crate::shards::shard::{PeerId, ShardId}; | |
use crate::shards::shard_holder::ShardKeyMapping; | |
use crate::shards::transfer::ShardTransfer; | |
pub struct ShardInfo { | |
pub replicas: HashMap<PeerId, ReplicaState>, | |
} | |
pub struct State { | |
pub config: CollectionConfigInternal, | |
pub shards: HashMap<ShardId, ShardInfo>, | |
pub resharding: Option<ReshardState>, | |
pub transfers: HashSet<ShardTransfer>, | |
pub shards_key_mapping: ShardKeyMapping, | |
pub payload_index_schema: PayloadIndexSchema, | |
} | |
impl State { | |
pub fn max_shard_id(&self) -> ShardId { | |
self.shards_key_mapping | |
.values() | |
.flat_map(|shard_ids| shard_ids.iter()) | |
.max() | |
.copied() | |
.unwrap_or(0) | |
} | |
} | |