Crates.io | cfdi_use_mx |
lib.rs | cfdi_use_mx |
version | 1.0.0 |
source | src |
created_at | 2022-07-26 01:24:18.19138 |
updated_at | 2023-04-13 20:59:09.751956 |
description | Mexican CFDI use |
homepage | https://github.com/jonhteper/cfdi_use_mx |
repository | https://github.com/jonhteper/cfdi_use_mx |
max_upload_size | |
id | 632896 |
size | 20,635 |
Bliblioteca para el uso de CFDI en México, según las especificaciones 31 y 4.
Conversión por código
use cfdi_use_mx::*;
fn main() {
let cfdi_use = v4::CFDIUse::from("G03");
assert_eq!(cfdi_use, v4::CFDIUse::G03);
}
Conversión por descripción
use cfdi_use_mx::*;
fn main() {
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::*;
fn main() {
let cfdi_use = v4::CFDIUse::from("Strange text");
assert_eq!(cfdi_use, v4::CFDIUse::default());
}
IMPORTANTE: El soporte de serde
está activo por default. Si no lo necesita, desactive las default-features
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,
}
#[test]
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());
}
#[test]
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);
}
Actualmente deprecada ↩