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);