konduto/types/delivery/
delivery_method.rs

1use crate::impl_nutype_error_conversion;
2use nutype::nutype;
3
4/// Método de entrega (máximo 100 caracteres)
5///
6/// # Validações
7/// - Não pode ser vazio (após trim)
8/// - Máximo 100 caracteres
9///
10/// # Exemplos
11/// ```
12/// use konduto::delivery_method::DeliveryMethod;
13///
14/// let method = DeliveryMethod::try_new("Entrega expressa").unwrap();
15/// assert_eq!(method.as_str(), "Entrega expressa");
16/// ```
17#[nutype(
18    sanitize(trim),
19    validate(not_empty, len_char_max = 100),
20    derive(
21        Debug,
22        Clone,
23        PartialEq,
24        Eq,
25        Display,
26        AsRef,
27        Deref,
28        Serialize,
29        Deserialize,
30    )
31)]
32pub struct DeliveryMethod(String);
33
34impl DeliveryMethod {
35    /// Retorna o método de entrega como string slice (compatibilidade)
36    pub fn as_str(&self) -> &str {
37        self.as_ref()
38    }
39}
40
41impl_nutype_error_conversion!(DeliveryMethodError);