kmp_domain/value_objects/role.rs
1use crate::DomainError;
2
3#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4pub struct Role(String);
5
6impl Role {
7 pub fn new(value: impl Into<String>) -> Result<Self, DomainError> {
8 let value = value.into();
9 if value.trim().is_empty() {
10 return Err(DomainError::EmptyValue("role"));
11 }
12
13 Ok(Self(value))
14 }
15
16 pub fn as_str(&self) -> &str {
17 &self.0
18 }
19}