1use crate::validador::{Validador};
2use crate::types::{CartaoCredito, Cnh, Cnpj, Cpf, Cns, Pis, Renavam, Rg,
3 TituloEleitor, CodigoBarrasGs1,
4};
5
6impl<'data> TryFrom<&'data str> for CartaoCredito<'data>{
7type Error = &'static str;
8
9 fn try_from(value: &'data str) -> Result<Self, Self::Error> {
10 if Self::is_valid(value) {
11 Ok(Self(value))
12 } else {
13 Err("Cartão de crédito inválido")
14 }
15 }
16}
17
18impl<'data> TryFrom<&'data str> for Cpf<'data>{
19type Error = &'static str;
20
21 fn try_from(value: &'data str) -> Result<Self, Self::Error> {
22 if Self::is_valid(value) {
23 Ok(Self(value))
24 } else {
25 Err("Cpf inválido")
26 }
27 }
28}
29
30impl<'data> TryFrom<&'data str> for Cnh<'data>{
43type Error = &'static str;
44
45 fn try_from(value: &'data str) -> Result<Self, Self::Error> {
46 if Self::is_valid(value) {
47 Ok(Self(value))
48 } else {
49 Err("Carteira de motorista inválida")
50 }
51 }
52}
53
54impl<'data> TryFrom<&'data str> for Cnpj<'data>{
55type Error = &'static str;
56
57 fn try_from(value: &'data str) -> Result<Self, Self::Error> {
58 if Self::is_valid(value) {
59 Ok(Self(value))
60 } else {
61 Err("cnpj inválido")
62 }
63 }
64}
65
66impl<'data> TryFrom<&'data str> for Cns<'data>{
67type Error = &'static str;
68
69 fn try_from(value: &'data str) -> Result<Self, Self::Error> {
70 if Self::is_valid(value) {
71 Ok(Self(value))
72 } else {
73 Err("Cartão de saúde inválido")
74 }
75 }
76}
77
78impl<'data> TryFrom<&'data str> for Pis<'data>{
79type Error = &'static str;
80
81 fn try_from(value: &'data str) -> Result<Self, Self::Error> {
82 if Self::is_valid(value) {
83 Ok(Self(value))
84 } else {
85 Err("Número do Pis inválido")
86 }
87 }
88}
89
90impl<'data> TryFrom<&'data str> for Renavam<'data>{
91type Error = &'static str;
92
93 fn try_from(value: &'data str) -> Result<Self, Self::Error> {
94 if Self::is_valid(value) {
95 Ok(Self(value))
96 } else {
97 Err("Número do Renavam inválido")
98 }
99 }
100}
101
102impl<'data> TryFrom<&'data str> for Rg<'data>{
103type Error = &'static str;
104
105 fn try_from(value: &'data str) -> Result<Self, Self::Error> {
106 if Self::is_valid(value) {
107 Ok(Self(value))
108 } else {
109 Err("Não foi possível validar o número de identidade. Verifique a legislação do seu Estado")
110 }
111 }
112}
113
114impl<'data> TryFrom<&'data str> for TituloEleitor<'data>{
115type Error = &'static str;
116
117 fn try_from(value: &'data str) -> Result<Self, Self::Error> {
118 if Self::is_valid(value) {
119 Ok(Self(value))
120 } else {
121 Err("Número do Título de Eleitor inválido")
122 }
123 }
124}
125
126impl<'data> TryFrom<&'data str> for CodigoBarrasGs1<'data>{
127type Error = &'static str;
128
129 fn try_from(value: &'data str) -> Result<Self, Self::Error> {
130 if Self::is_valid(value) {
131 Ok(Self(value))
132 } else {
133 Err("Não foi possível validar o dígito verificador do código de barras")
134 }
135 }
136}