dbc_rs/attribute/builder/
build.rs1use super::AttributeDefinitionBuilder;
4use crate::attribute::AttributeDefinition;
5use crate::compat::Name;
6use crate::{Error, Result};
7
8impl AttributeDefinitionBuilder {
9 pub fn build(self) -> Result<AttributeDefinition> {
18 let name_str = self.name.ok_or_else(|| Error::expected(Error::ATTRIBUTE_NAME_REQUIRED))?;
20
21 let name = Name::try_from(name_str.as_str())
22 .map_err(|_| Error::expected(Error::MAX_NAME_SIZE_EXCEEDED))?;
23
24 let value_type = self
26 .value_type
27 .ok_or_else(|| Error::expected(Error::ATTRIBUTE_VALUE_TYPE_REQUIRED))?;
28
29 Ok(AttributeDefinition::new(name, self.object_type, value_type))
30 }
31}