CFDI.rs
Crate para Deserializar un XML de un CFDI en structs nativos en Rust.
Comprobante
El struct principal es [Comprobante]. Al igual que en un xml de un CFDI, es el nodo de origen.
Tambien hay structs para otros subnodos del xml, incluyendo sus atributos. Estos incluyen ['Emisor'], ['Receptor'] y ['TimbreFiscalDigital']
Este crate por el momento solo contempla la estructura más básica de un CFDI. No se intenta generar un modelo completo del estandar de los CFDI 4.0+ Hasta esta versión, solo se implementa el siguient modelo:
|-Comprobante
|-- Emisor
|**-> rfc
|**-> nombre
|**-> regimen_fiscal
|-- Receptor
|**-> rfc
|**-> nombre
|**-> regimen_fiscal
|**-> uso_cfdi
|-- Conceptos
|-- Complemento (opcional) - Incluye TimbreFiscalDigital
|**-> total
|**-> subtotal
|**-> fecha
|**-> forma_de_pago
|**-> descuento
|**-> tipo_comprobante
|**-> forma_de_pago
|-- Representan subnodos
|**-> representan atributos del nodo
Sin embargo, cualquier persona que necesite más detalle puede revisar el codigo fuente y de ahi basarse para agregar los subnodos que necesite. Realmente no es dificil, pero es un poco tedioso. Si agregan subnodos les agradecería hicieran un Pull Request.
Ejemplo:
Usando [Comprobante]:
use ;
let path = ;
let xml_string = read_to_string.unwrap;
if let Ok = parse_cfdi
Datos Principales
[DatosPrincipales] es un struct que facilita recopilar en 1 solo nivel los principales
atributos del cfdi. Asume que los datos se encuntran correctamente definidos en el cfdi.
Además, no incluye otros datos que a veces ocupan mucho espacio, o simplemente no conviene
estar manejando (ej. Sello, certificado, etc.)
use ;
let path = ;
let xml_string = read_to_string.unwrap;
if let Ok = parse_cfdi