nfe_parser/base/item/imposto/
cofins.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
7pub struct CofinsContainer {
8 #[serde(rename = "COFINSAliq")]
10 #[serde(skip_serializing_if = "Option::is_none")]
11 pub cofins_aliq: Option<CofinsAliq>,
12 #[serde(rename = "COFINSNT")]
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub cofins_nt: Option<CofinsNt>,
16 #[serde(rename = "COFINSOutr")]
18 #[serde(skip_serializing_if = "Option::is_none")]
19 pub cofins_outr: Option<CofinsOutr>,
20}
21
22#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
24pub struct CofinsAliq {
25 #[serde(rename = "$unflatten=CST")]
27 pub cst: String,
28 #[serde(rename = "$unflatten=vBC")]
30 pub valor_bc: f32,
31 #[serde(rename = "$unflatten=pCOFINS")]
33 pub aliquota: f32,
34 #[serde(rename = "$unflatten=vCOFINS")]
36 pub valor: f32,
37}
38
39#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
41pub struct CofinsNt {
42 #[serde(rename = "$unflatten=CST")]
44 pub cst: String,
45}
46
47#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
49pub struct CofinsOutr {
50 #[serde(rename = "$unflatten=CST")]
52 pub cst: String,
53 #[serde(rename = "$unflatten=vBC")]
55 #[serde(skip_serializing_if = "Option::is_none")]
56 pub valor_bc: Option<f32>,
57 #[serde(rename = "$unflatten=pCOFINS")]
59 #[serde(skip_serializing_if = "Option::is_none")]
60 pub aliquota: Option<f32>,
61 #[serde(rename = "$unflatten=vCOFINS")]
63 #[serde(skip_serializing_if = "Option::is_none")]
64 pub valor: Option<f32>,
65}