use super::AttributeDefinitionBuilder;
use crate::attribute::AttributeDefinition;
use crate::compat::Name;
use crate::{Error, Result};
impl AttributeDefinitionBuilder {
pub fn build(self) -> Result<AttributeDefinition> {
let name_str = self.name.ok_or_else(|| Error::expected(Error::ATTRIBUTE_NAME_REQUIRED))?;
let name = Name::try_from(name_str.as_str())
.map_err(|_| Error::expected(Error::MAX_NAME_SIZE_EXCEEDED))?;
let value_type = self
.value_type
.ok_or_else(|| Error::expected(Error::ATTRIBUTE_VALUE_TYPE_REQUIRED))?;
Ok(AttributeDefinition::new(name, self.object_type, value_type))
}
}