use super::MAX_NAME_LENGTH;
use crate::Identifier;
use crate::Validatable;
use crate::error::IggyError;
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
pub struct UpdateStream {
#[serde(skip)]
pub stream_id: Identifier,
pub name: String,
}
impl Default for UpdateStream {
fn default() -> Self {
UpdateStream {
stream_id: Identifier::default(),
name: "stream".to_string(),
}
}
}
impl Validatable<IggyError> for UpdateStream {
fn validate(&self) -> Result<(), IggyError> {
if self.name.is_empty() || self.name.len() > MAX_NAME_LENGTH {
return Err(IggyError::InvalidStreamName);
}
Ok(())
}
}