Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jonhteper/cfdi_use_mx
Rust library for cfdi_use
https://github.com/jonhteper/cfdi_use_mx
Last synced: about 1 month ago
JSON representation
Rust library for cfdi_use
- Host: GitHub
- URL: https://github.com/jonhteper/cfdi_use_mx
- Owner: jonhteper
- License: mit
- Created: 2022-07-26T01:07:20.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-04-13T20:58:43.000Z (almost 2 years ago)
- Last Synced: 2024-12-02T00:33:55.730Z (2 months ago)
- Language: Rust
- Size: 10.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# cfdi_use_mx
[![Crates.io](https://shields.io/crates/v/cfdi_use_mx.svg)](https://crates.io/crates/cfdi_use_mx)Bliblioteca para el uso de CFDI en México, según las especificaciones 3[^*] y 4.
[^*]: Actualmente deprecada
## Ejemplo de usoConversión por código
```rust
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
```rust
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
```rust
use cfdi_use_mx::*;fn main() {
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`](https://doc.rust-lang.org/cargo/reference/features.html#dependency-features)*
### Ejemplo
```rust
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_json).unwrap();
assert_eq!(&deserialize_costumer, &costumer);
println!("{:?}", &deserialize_costumer);
}
```