use super::MAX_PARTITIONS_COUNT;
use crate::Identifier;
use crate::Validatable;
use crate::error::IggyError;
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
pub struct DeletePartitions {
#[serde(skip)]
pub stream_id: Identifier,
#[serde(skip)]
pub topic_id: Identifier,
pub partitions_count: u32,
}
impl Default for DeletePartitions {
fn default() -> Self {
DeletePartitions {
stream_id: Identifier::default(),
topic_id: Identifier::default(),
partitions_count: 1,
}
}
}
impl Validatable<IggyError> for DeletePartitions {
fn validate(&self) -> Result<(), IggyError> {
if !(1..=MAX_PARTITIONS_COUNT).contains(&self.partitions_count) {
return Err(IggyError::TooManyPartitions);
}
Ok(())
}
}