Expand description
§cfdi_use_mx
Bliblioteca para el uso de CFDI en México, según la especificación v4.
§Ejemplo de uso
Conversión por código
use cfdi_use_mx::*;
let cfdi_use = v4::CFDIUse::from("G03");
assert_eq!(cfdi_use, v4::CFDIUse::G03);
Conversión por descripción
use cfdi_use_mx::*;
let cfdi_use = v4::CFDIUse::from_description("Pagos");
assert_eq!(cfdi_use, v4::CFDIUse::CP01);
assert_eq!("Pagos", v4::CFDIUse::CP01.description());Valor por default
use cfdi_use_mx::*;
let cfdi_use = v4::CFDIUse::from("Strange text");
assert_eq!(cfdi_use, v4::CFDIUse::default());§Serde
IMPORTANTE: El soporte de serde está activo por default. Si no lo necesita, desactive las default-features
§Ejemplo
use serde::{Deserialize, Serialize};
use serde_json::json;
use cfdi_use_mx::v4::CFDIUse;
#[derive(Serialize, Deserialize, Debug, PartialEq)]
struct Costumer {
rfc: String,
cfdi_use: CFDIUse,
}
fn serialize_works() {
let costumer = Costumer {
rfc: "RFC11DDDF".to_string(),
cfdi_use: CFDIUse::D04,
};
let result = serde_json::to_string(&costumer);
assert!(result.is_ok());
println!("{:?}", result.unwrap());
}
fn deserialize_works() {
let costumer_json = json!({
"rfc": "RFC11DDDF",
"cfdi_use": "D03"
});
let costumer = Costumer {
rfc: "RFC11DDDF".to_string(),
cfdi_use: CFDIUse::D03,
};
let deserialize_costumer = serde_json::from_value::<Costumer>(costumer_json).unwrap();
assert_eq!(&deserialize_costumer, &costumer);
println!("{:?}", &deserialize_costumer);
}Re-exports§
pub use v4::*;