4个版本 (1个稳定版)
1.0.0 | 2023年4月13日 |
---|---|
0.2.0 | 2022年12月20日 |
0.1.1 | 2022年11月18日 |
0.1.0 | 2022年7月26日 |
#856 在 编码
20KB
467 行
cfdi_use_mx
根据3[^*]和4规格,用于墨西哥CFDI的库。
[^*]: 当前已弃用
使用示例
代码转换
use cfdi_use_mx::*;
fn main() {
let cfdi_use = v4::CFDIUse::from("G03");
assert_eq!(cfdi_use, v4::CFDIUse::G03);
}
描述转换
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());
}
默认值
use cfdi_use_mx::*;
fn main() {
let cfdi_use = v4::CFDIUse::from("Strange text");
assert_eq!(cfdi_use, v4::CFDIUse::default());
}
Serde
重要:Serde的支持默认激活。如果您不需要它,请禁用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);
}
依赖项
~110–350KB