use std::collections::HashMap;
macro_rules! structure {
($($key:expr => $val:expr),* $(,)?) => {{
let mut map = HashMap::new();
$(map.insert($key, $val);)*
map
}};
}
pub(super) fn structure_310() -> HashMap<&'static str, &'static str> {
structure! {
"NOTAFISCAL" => "NOTAFISCAL|1|",
"A" => "A|versao|Id|pk_nItem|",
"B" => "B|cUF|cNF|natOp|indPag|mod|serie|nNF|dhEmi|dhSaiEnt|tpNF|idDest|cMunFG|tpImp|tpEmis|cDV|tpAmb|finNFe|indFinal|indPres|procEmi|verProc|dhCont|xJust|",
"BA" => "BA|",
"BA02" => "BA02|refNFe|",
"C" => "C|xNome|xFant|IE|IEST|IM|CNAE|CRT|",
"C02" => "C02|CNPJ|",
"C02A" => "C02a|cpf|",
"C05" => "C05|xLgr|nro|xCpl|xBairro|cMun|xMun|UF|CEP|cPais|xPais|fone|",
"E" => "E|xNome|indIEDest|IE|ISUF|IM|email|",
"E02" => "E02|CNPJ|",
"E03" => "E03|CPF|",
"E03A" => "E03a|idEstrangeiro|",
"E05" => "E05|xLgr|nro|xCpl|xBairro|cMun|xMun|UF|CEP|cPais|xPais|fone|",
"H" => "H|item|infAdProd|",
"I" => "I|cProd|cEAN|xProd|NCM|EXTIPI|CFOP|uCom|qCom|vUnCom|vProd|cEANTrib|uTrib|qTrib|vUnTrib|vFrete|vSeg|vDesc|vOutro|indTot|xPed|nItemPed|nFCI|",
"I05C" => "I05C|CEST|",
"M" => "M|vTotTrib|",
"N" => "N|",
"N02" => "N02|orig|CST|modBC|vBC|pICMS|vICMS|",
"N03" => "N03|orig|CST|modBC|vBC|pICMS|vICMS|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|",
"N04" => "N04|orig|CST|modBC|pRedBC|vBC|pICMS|vICMS|vICMSDeson|motDesICMS|",
"N05" => "N05|orig|CST|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vICMSDeson|motDesICMS|",
"N06" => "N06|orig|CST|vICMSDeson|motDesICMS|",
"N07" => "N07|orig|CST|modBC|pRedBC|vBC|pICMS|vICMSOp|pDif|vICMSDif|vICMS|",
"N08" => "N08|orig|CST|vBCSTRet|vICMSSTRet|",
"N09" => "N09|orig|CST|modBC|pRedBC|vBC|pICMS|vICMS|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vICMSDeson|motDesICMS|",
"N10" => "N10|orig|CST|modBC|vBC|pRedBC|pICMS|vICMS|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vICMSDeson|motDesICMS|",
"O" => "O|clEnq|CNPJProd|cSelo|qSelo|cEnq|",
"O07" => "O07|CST|vIPI|",
"O08" => "O08|CST|",
"O10" => "O10|vBC|pIPI|",
"Q" => "Q|",
"Q02" => "Q02|CST|vBC|pPIS|vPIS|",
"Q04" => "Q04|CST|",
"S" => "S|",
"S02" => "S02|CST|vBC|pCOFINS|vCOFINS|",
"S04" => "S04|CST|",
"W" => "W|",
"W02" => "W02|vBC|vICMS|vICMSDeson|vBCST|vST|vProd|vFrete|vSeg|vDesc|vII|vIPI|vPIS|vCOFINS|vOutro|vNF|vTotTrib|",
"X" => "X|modFrete|",
"X03" => "X03|xNome|IE|xEnder|xMun|UF|",
"X04" => "X04|CNPJ|",
"X05" => "X05|CPF|",
"X26" => "X26|qVol|esp|marca|nVol|pesoL|pesoB|",
"Y" => "Y|",
"Y02" => "Y02|nFat|vOrig|vDesc|vLiq|",
"Y07" => "Y07|nDup|dVenc|vDup|",
"YA" => "YA|tPag|vPag|CNPJ|tBand|cAut|tpIntegra|",
"Z" => "Z|infAdFisco|infCpl|"
}
}
pub(super) fn structure_400() -> HashMap<&'static str, &'static str> {
structure! {
"NOTAFISCAL" => "NOTAFISCAL|qtd|",
"A" => "A|versao|Id|pk_nItem|",
"B" => "B|cUF|cNF|natOp|mod|serie|nNF|dhEmi|dhSaiEnt|tpNF|idDest|cMunFG|cMunFGIBS|tpImp|tpEmis|cDV|tpAmb|finNFe|indFinal|indPres|indIntermed|procEmi|verProc|dhCont|xJust|",
"B31" => "B31|tpEnteGov|pRedutor|tpOperGov|",
"BA" => "BA|",
"BA02" => "BA02|refNFe|",
"BA03" => "BA03|cUF|AAMM|CNPJ|mod|serie|nNF|",
"BA10" => "BA10|cUF|AAMM|IE|mod|serie|nNF|",
"BA13" => "BA13|CNPJ|",
"BA14" => "BA14|CPF|",
"BA19" => "B19|refCTe|",
"BA20" => "BA20|mod|nECF|nCOO|",
"BB" => "BB|",
"BB02" => "BB02|refNFe|",
"C" => "C|xNome|xFant|IE|IEST|IM|CNAE|CRT|",
"C02" => "C02|CNPJ|",
"C02A" => "C02a|CPF|",
"C05" => "C05|xLgr|nro|xCpl|xBairro|cMun|xMun|UF|CEP|cPais|xPais|fone|",
"D" => "D|CNPJ|xOrgao|matr|xAgente|fone|UF|nDAR|dEmi|vDAR|repEmi|dPag|",
"E" => "E|xNome|indIEDest|IE|ISUF|IM|email|",
"E02" => "E02|CNPJ|",
"E03" => "E03|CPF|",
"E03A" => "E03a|idEstrangeiro|",
"E05" => "E05|xLgr|nro|xCpl|xBairro|cMun|xMun|UF|CEP|cPais|xPais|fone|",
"F" => "F|xLgr|nro|xCpl|xBairro|cMun|xMun|UF|CEP|cPais|xPais|fone|email|IE|",
"F02" => "F02|CNPJ|",
"F02A" => "F02a|CPF|",
"F02B" => "F02b|xNome|",
"G" => "G|xLgr|nro|xCpl|xBairro|cMun|xMun|UF|CEP|cPais|xPais|fone|email|IE|",
"G02" => "G02|CNPJ|",
"G02A" => "G02a|CPF|",
"G02B" => "G02b|xNome|",
"GA" => "GA|",
"GA02" => "GA02|CNPJ|",
"GA03" => "GA03|CPF|",
"H" => "H|item|infAdProd|",
"I" => "I|cProd|cEAN|xProd|NCM|cBenef|EXTIPI|CFOP|uCom|qCom|vUnCom|vProd|cEANTrib|uTrib|qTrib|vUnTrib|vFrete|vSeg|vDesc|vOutro|indTot|xPed|nItemPed|nFCI|indBemMovelUsado|",
"I05A" => "I05A|NVE|",
"I05C" => "I05C|CEST|indEscala|CNPJFab|",
"I05G" => "I05C|cCredPresumido|pCredPresumido|vCredPresumido|",
"I18" => "I18|nDI|dDI|xLocDesemb|UFDesemb|dDesemb|tpViaTransp|vAFRMM|tpIntermedio|CNPJ|UFTerceiro|cExportador|",
"I25" => "I25|nAdicao|nSeqAdic|cFabricante|vDescDI|nDraw|",
"I50" => "I50|nDraw|",
"I52" => "I52|nRE|chNFe|qExport|",
"I80" => "I80|nLote|qLote|dFab|dVal|cAgreg|",
"JA" => "JA|tpOp|chassi|cCor|xCor|pot|cilin|pesoL|pesoB|nSerie|tpComb|nMotor|CMT|dist|anoMod|anoFab|tpPint|tpVeic|espVeic|VIN|condVeic|cMod|cCorDENATRAN|lota|tpRest|",
"K" => "K|cProdANVISA|vPMC|xMotivoIsencao|",
"L" => "L|tpArma|nSerie|nCano|descr|",
"LA" => "LA|cProdANP|descANP|pGLP|pGNn|pGNi|vPart|CODIF|qTemp|UFCons|",
"LA07" => "LA07|qBCProd|vAliqProd|vCIDE|",
"LA11" => "LA11|nBico|nBomba|nTanque|vEncIni|vEncFin|",
"LB" => "LB|nRECOPI|",
"M" => "M|vTotTrib|",
"N" => "N|",
"N02" => "N02|orig|CST|modBC|vBC|pICMS|vICMS|pFCP|vFCP|",
"N03" => "N03|orig|CST|modBC|vBC|pICMS|vICMS|vBCFCP|pFCP|vFCP|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|",
"N04" => "N04|orig|CST|modBC|pRedBC|vBC|pICMS|vICMS|vBCFCP|pFCP|vFCP|vICMSDeson|motDesICMS|",
"N05" => "N05|orig|CST|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|vICMSDeson|motDesICMS|",
"N06" => "N06|orig|CST|vICMSDeson|motDesICMS|indDeduzDeson|",
"N07" => "N07|orig|CST|modBC|pRedBC|vBC|pICMS|vICMSOp|pDif|vICMSDif|vICMS|vBCFCP|pFCP|vFCP|",
"N08" => "N08|orig|CST|vBCSTRet|pST|vICMSSTRet|vBCFCPSTRet|pFCPSTRet|vFCPSTRet|pRedBCEfet|vBCEfet|pICMSEfet|vICMSEfet|vICMSSubstituto|",
"N09" => "N09|orig|CST|modBC|pRedBC|vBC|pICMS|vICMS|vBCFCP|pFCP|vFCP|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|vICMSDeson|motDesICMS|",
"N10" => "N10|orig|CST|modBC|vBC|pRedBC|pICMS|vICMS|vBCFCP|pFCP|vFCP|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|vICMSDeson|motDesICMS|",
"N10A" => "N10a|orig|CST|modBC|vBC|pRedBC|pICMS|vICMS|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|pBCOp|UFST|",
"N10B" => "N10b|orig|CST|vBCSTRet|vICMSSTRet|vBCSTDest|vICMSSTDest|vBCFCPSTRet|pFCPSTRet|vFCPSTRet|pST|vICMSSubstituto|pRedBCEfet|vBCEfet|pICMSEfet|vICMSEfet|",
"N10C" => "N10c|orig|CSOSN|pCredSN|vCredICMSSN|",
"N10D" => "N10d|orig|CSOSN|",
"N10E" => "N10e|orig|CSOSN|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|pCredSN|vCredICMSSN|",
"N10F" => "N10f|orig|CSOSN|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|",
"N10G" => "N10g|orig|CSOSN|vBCSTRet|pST|vICMSSTRet|vBCFCPSTRet|pFCPSTRet|vFCPSTRet|pRedBCEfet|vBCEfet|pICMSEfet|vICMSEfet|vICMSSubstituto|",
"N10H" => "N10h|orig|CSOSN|modBC|vBC|pRedBC|pICMS|vICMS|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|pCredSN|vCredICMSSN|",
"NA" => "NA|vBCUFDest|vBCFCPUFDest|pFCPUFDest|pICMSUFDest|pICMSInter|pICMSInterPart|vFCPUFDest|vICMSUFDest|vICMSUFRemet|",
"O" => "O|CNPJProd|cSelo|qSelo|cEnq|",
"O07" => "O07|CST|vIPI|",
"O08" => "O08|CST|",
"O10" => "O10|vBC|pIPI|",
"O11" => "O11|qUnid|vUnid|",
"P" => "P|vBC|vDespAdu|vII|vIOF|",
"Q" => "Q|",
"Q02" => "Q02|CST|vBC|pPIS|vPIS|",
"Q03" => "Q03|CST|qBCProd|vAliqProd|vPIS|",
"Q04" => "Q04|CST|",
"Q05" => "Q05|CST|vPIS|",
"Q07" => "Q07|vBC|pPIS|",
"Q10" => "Q10|qBCProd|vAliqProd|",
"R" => "R|vPIS|",
"R02" => "R02|vBC|pPIS|",
"R04" => "R04|qBCProd|vAliqProd|vPIS|",
"S" => "S|",
"S02" => "S02|CST|vBC|pCOFINS|vCOFINS|",
"S03" => "S03|CST|qBCProd|vAliqProd|vCOFINS|",
"S04" => "S04|CST|",
"S05" => "S05|CST|vCOFINS|",
"S07" => "S07|vBC|pCOFINS|",
"S09" => "S09|qBCProd|vAliqProd|",
"T" => "T|vCOFINS|",
"T02" => "T02|vBC|pCOFINS|",
"T04" => "T04|qBCProd|vAliqProd|",
"U" => "U|vBC|vAliq|vISSQN|cMunFG|cListServ|vDeducao|vOutro|vDescIncond|vDescCond|vISSRet|indISS|cServico|cMun|cPais|nProcesso|indIncentivo|",
"UA" => "UA|pDevol|vIPIDevol|",
"UB" => "UB|",
"UB01" => "UB01|CSTIS|cClassTribIS|vBCIS|pIS|pISEspec|uTrib|qTrib|vIS|",
"UB12" => "UB12|CST|cClassTrib|vBC|pIBSUF|vIBSUF|pIBSMun|vIBSMun|pCBS|vCBS|vIBS|",
"UB73" => "UB73|cCredPres|pCredPres|vCredPres|vCredPresCondSus|",
"UB78" => "UB78|cCredPres|pCredPres|vCredPres|vCredPresCondSus|",
"W" => "W|",
"W02" => "W02|vBC|vICMS|vICMSDeson|vFCP|vBCST|vST|vFCPST|vFCPSTRet|vProd|vFrete|vSeg|vDesc|vII|vIPI|vIPIDevol|vPIS|vCOFINS|vOutro|vNF|vTotTrib|vFCPUFDest|vICMSUFDest|vICMSUFRemet|",
"W03" => "W03|vIBS|vCBS|vIS|vBCIBSCBS|gIBS_vIBS|gIBS_vCredPres|gIBS_vCredPresCondSus|gIBSUF_vDif|gIBSUF_vDevTrib|gIBSUF_vIBSUF|gIBSMun_vDif|gIBSMun_vDevTrib|gIBSMun_vIBSMun|gCBS_vDif|gCBS_vDevTrib|gCBS_vCBS|gCBS_vCredPres|gCBS_vCredPresCondSus|gMono_vIBSMono|gMono_vCBSMono|gMono_vIBSMonoReten|gMono_vCBSMonoReten|gMono_vIBSMonoRet|gMono_vCBSMonoRet|",
"W17" => "W17|vServ|vBC|vISS|vPIS|vCOFINS|dCompet|vDeducao|vOutro|vDescIncond|vDescCond|vISSRet|cRegTrib|",
"W23" => "W23|vRetPIS|vRetCOFINS|vRetCSLL|vBCIRRF|vIRRF|vBCRetPrev|vRetPrev|",
"X" => "X|modFrete|",
"X03" => "X03|xNome|IE|xEnder|xMun|UF|",
"X04" => "X04|CNPJ|",
"X05" => "X05|CPF|",
"X11" => "X11|vServ|vBCRet|pICMSRet|vICMSRet|CFOP|cMunFG|",
"X18" => "X18|placa|UF|RNTC|",
"X22" => "X22|placa|UF|RNTC|",
"X25A" => "X25a|vagao|",
"X25B" => "X25b|balsa|",
"X26" => "X26|qVol|esp|marca|nVol|pesoL|pesoB|",
"X33" => "X33|nLacre|",
"Y" => "Y|vTroco|",
"Y02" => "Y02|nFat|vOrig|vDesc|vLiq|",
"Y07" => "Y07|nDup|dVenc|vDup|",
"YA" => "YA|indPag|tPag|vPag|CNPJ|tBand|cAut|tpIntegra|xPag|",
"YB" => "YB|CNPJ|idCadIntTran|",
"Z" => "Z|infAdFisco|infCpl|",
"Z04" => "Z04|xCampo|xTexto|",
"Z07" => "Z07|xCampo|xTexto|",
"Z10" => "Z10|nProc|indProc|",
"ZA" => "ZA|UFSaidaPais|xLocExporta|xLocDespacho|",
"ZB" => "ZB|xNEmp|xPed|xCont|",
"ZC" => "ZC|safra|ref|qTotMes|qTotAnt|qTotGer|vFor|vTotDed|vLiqFor|",
"ZC04" => "ZC04|dia|qtde|",
"ZC10" => "ZC10|xDed|vDed|",
"ZD" => "ZD|CNPJ|xContato|email|fone|CSRT|idCSRT|",
"ZX01" => "ZX01|qrcode|urlChave|"
}
}
pub(super) fn structure_400_v12() -> HashMap<&'static str, &'static str> {
structure! {
"NOTAFISCAL" => "NOTAFISCAL|qtd|",
"A" => "A|versao|Id|pk_nItem|",
"B" => "B|cUF|cNF|natOp|mod|serie|nNF|dhEmi|dhSaiEnt|tpNF|idDest|cMunFG|tpImp|tpEmis|cDV|tpAmb|finNFe|indFinal|indPres|indIntermed|procEmi|verProc|dhCont|xJust|",
"BA" => "BA|",
"BA02" => "BA02|refNFe|",
"C" => "C|xNome|xFant|IE|IEST|IM|CNAE|CRT|",
"C02" => "C02|CNPJ|",
"C02A" => "C02a|CPF|",
"C05" => "C05|xLgr|nro|xCpl|xBairro|cMun|xMun|UF|CEP|cPais|xPais|fone|",
"D" => "D|CNPJ|xOrgao|matr|xAgente|fone|UF|nDAR|dEmi|vDAR|repEmi|dPag|",
"E" => "E|xNome|indIEDest|IE|ISUF|IM|email|",
"E02" => "E02|CNPJ|",
"E03" => "E03|CPF|",
"E03A" => "E03a|idEstrangeiro|",
"E05" => "E05|xLgr|nro|xCpl|xBairro|cMun|xMun|UF|CEP|cPais|xPais|fone|",
"F" => "F|xLgr|nro|xCpl|xBairro|cMun|xMun|UF|CEP|cPais|xPais|fone|email|IE|",
"F02" => "F02|CNPJ|",
"F02A" => "F02a|CPF|",
"F02B" => "F02b|xNome|",
"G" => "G|xLgr|nro|xCpl|xBairro|cMun|xMun|UF|CEP|cPais|xPais|fone|email|IE|",
"G02" => "G02|CNPJ|",
"G02A" => "G02a|CPF|",
"G02B" => "G02b|xNome|",
"GA" => "GA|",
"GA02" => "GA02|CNPJ|",
"GA03" => "GA03|CPF|",
"H" => "H|item|infAdProd|",
"I" => "I|cProd|cEAN|xProd|NCM|cBenef|EXTIPI|CFOP|uCom|qCom|vUnCom|vProd|cEANTrib|uTrib|qTrib|vUnTrib|vFrete|vSeg|vDesc|vOutro|indTot|xPed|nItemPed|nFCI|",
"I05A" => "I05A|NVE|",
"I05C" => "I05C|CEST|indEscala|CNPJFab|",
"I05G" => "I05C|cCredPresumido|pCredPresumido|vCredPresumido|",
"I18" => "I18|nDI|dDI|xLocDesemb|UFDesemb|dDesemb|tpViaTransp|vAFRMM|tpIntermedio|CNPJ|UFTerceiro|cExportador|",
"I25" => "I25|nAdicao|nSeqAdic|cFabricante|vDescDI|nDraw|",
"I50" => "I50|nDraw|",
"I52" => "I52|nRE|chNFe|qExport|",
"I80" => "I80|nLote|qLote|dFab|dVal|cAgreg|",
"JA" => "JA|tpOp|chassi|cCor|xCor|pot|cilin|pesoL|pesoB|nSerie|tpComb|nMotor|CMT|dist|anoMod|anoFab|tpPint|tpVeic|espVeic|VIN|condVeic|cMod|cCorDENATRAN|lota|tpRest|",
"K" => "K|cProdANVISA|vPMC|xMotivoIsencao|",
"L" => "L|tpArma|nSerie|nCano|descr|",
"LA" => "LA|cProdANP|descANP|pGLP|pGNn|pGNi|vPart|CODIF|qTemp|UFCons|",
"LB" => "LB|nRECOPI|",
"M" => "M|vTotTrib|",
"N" => "N|",
"N02" => "N02|orig|CST|modBC|vBC|pICMS|vICMS|pFCP|vFCP|",
"N03" => "N03|orig|CST|modBC|vBC|pICMS|vICMS|vBCFCP|pFCP|vFCP|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|",
"N04" => "N04|orig|CST|modBC|pRedBC|vBC|pICMS|vICMS|vBCFCP|pFCP|vFCP|vICMSDeson|motDesICMS|",
"N05" => "N05|orig|CST|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|vICMSDeson|motDesICMS|",
"N06" => "N06|orig|CST|vICMSDeson|motDesICMS|indDeduzDeson|",
"N07" => "N07|orig|CST|modBC|pRedBC|vBC|pICMS|vICMSOp|pDif|vICMSDif|vICMS|vBCFCP|pFCP|vFCP|",
"N08" => "N08|orig|CST|vBCSTRet|pST|vICMSSTRet|vBCFCPSTRet|pFCPSTRet|vFCPSTRet|pRedBCEfet|vBCEfet|pICMSEfet|vICMSEfet|vICMSSubstituto|",
"N09" => "N09|orig|CST|modBC|pRedBC|vBC|pICMS|vICMS|vBCFCP|pFCP|vFCP|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|vICMSDeson|motDesICMS|",
"N10" => "N10|orig|CST|modBC|vBC|pRedBC|pICMS|vICMS|vBCFCP|pFCP|vFCP|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|vICMSDeson|motDesICMS|",
"N10A" => "N10a|orig|CST|modBC|vBC|pRedBC|pICMS|vICMS|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|pBCOp|UFST|",
"N10B" => "N10b|orig|CST|vBCSTRet|vICMSSTRet|vBCSTDest|vICMSSTDest|vBCFCPSTRet|pFCPSTRet|vFCPSTRet|pST|vICMSSubstituto|pRedBCEfet|vBCEfet|pICMSEfet|vICMSEfet|",
"N10C" => "N10c|orig|CSOSN|pCredSN|vCredICMSSN|",
"N10D" => "N10d|orig|CSOSN|",
"N10E" => "N10e|orig|CSOSN|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|pCredSN|vCredICMSSN|",
"N10F" => "N10f|orig|CSOSN|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|",
"N10G" => "N10g|orig|CSOSN|vBCSTRet|pST|vICMSSTRet|vBCFCPSTRet|pFCPSTRet|vFCPSTRet|pRedBCEfet|vBCEfet|pICMSEfet|vICMSEfet|vICMSSubstituto|",
"N10H" => "N10h|orig|CSOSN|modBC|vBC|pRedBC|pICMS|vICMS|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|pCredSN|vCredICMSSN|",
"NA" => "NA|vBCUFDest|vBCFCPUFDest|pFCPUFDest|pICMSUFDest|pICMSInter|pICMSInterPart|vFCPUFDest|vICMSUFDest|vICMSUFRemet|",
"O" => "O|CNPJProd|cSelo|qSelo|cEnq|",
"O07" => "O07|CST|vIPI|",
"O08" => "O08|CST|",
"O10" => "O10|vBC|pIPI|",
"O11" => "O11|qUnid|vUnid|",
"P" => "P|vBC|vDespAdu|vII|vIOF|",
"Q" => "Q|",
"Q02" => "Q02|CST|vBC|pPIS|vPIS|",
"Q03" => "Q03|CST|qBCProd|vAliqProd|vPIS|",
"Q04" => "Q04|CST|",
"Q05" => "Q05|CST|vPIS|",
"R" => "R|vPIS|",
"S" => "S|",
"S02" => "S02|CST|vBC|pCOFINS|vCOFINS|",
"S03" => "S03|CST|qBCProd|vAliqProd|vCOFINS|",
"S04" => "S04|CST|",
"S05" => "S05|CST|vCOFINS|",
"T" => "T|vCOFINS|",
"U" => "U|vBC|vAliq|vISSQN|cMunFG|cListServ|vDeducao|vOutro|vDescIncond|vDescCond|vISSRet|indISS|cServico|cMun|cPais|nProcesso|indIncentivo|",
"UA" => "UA|pDevol|vIPIDevol|",
"W" => "W|",
"W02" => "W02|vBC|vICMS|vICMSDeson|vFCP|vBCST|vST|vFCPST|vFCPSTRet|vProd|vFrete|vSeg|vDesc|vII|vIPI|vIPIDevol|vPIS|vCOFINS|vOutro|vNF|vTotTrib|vFCPUFDest|vICMSUFDest|vICMSUFRemet|",
"W17" => "W17|vServ|vBC|vISS|vPIS|vCOFINS|dCompet|vDeducao|vOutro|vDescIncond|vDescCond|vISSRet|cRegTrib|",
"W23" => "W23|vRetPIS|vRetCOFINS|vRetCSLL|vBCIRRF|vIRRF|vBCRetPrev|vRetPrev|",
"X" => "X|modFrete|",
"X03" => "X03|xNome|IE|xEnder|xMun|UF|",
"X04" => "X04|CNPJ|",
"X05" => "X05|CPF|",
"X11" => "X11|vServ|vBCRet|pICMSRet|vICMSRet|CFOP|cMunFG|",
"X18" => "X18|placa|UF|RNTC|",
"X22" => "X22|placa|UF|RNTC|",
"X26" => "X26|qVol|esp|marca|nVol|pesoL|pesoB|",
"X33" => "X33|nLacre|",
"Y" => "Y|vTroco|",
"Y02" => "Y02|nFat|vOrig|vDesc|vLiq|",
"Y07" => "Y07|nDup|dVenc|vDup|",
"YA" => "YA|indPag|tPag|vPag|CNPJ|tBand|cAut|tpIntegra|xPag|",
"YB" => "YB|CNPJ|idCadIntTran|",
"Z" => "Z|infAdFisco|infCpl|",
"Z04" => "Z04|xCampo|xTexto|",
"Z07" => "Z07|xCampo|xTexto|",
"Z10" => "Z10|nProc|indProc|",
"ZA" => "ZA|UFSaidaPais|xLocExporta|xLocDespacho|",
"ZD" => "ZD|CNPJ|xContato|email|fone|CSRT|idCSRT|",
"ZX01" => "ZX01|qrcode|urlChave|"
}
}
pub(super) fn structure_400_v13() -> HashMap<&'static str, &'static str> {
let mut m = structure_400_v12();
m.insert("B", "B|cUF|cNF|natOp|mod|serie|nNF|dhEmi|dhSaiEnt|tpNF|idDest|cMunFG|tpImp|tpEmis|cDV|tpAmb|finNFe|indFinal|indPres|indIntermed|procEmi|verProc|dhCont|xJust|indPag|dPrevEntrega|tpNFDebito|tpNFCredito|cMunFGIBS|");
m.insert("B31", "B31|tpEnteGov|pRedutor|tpOperGov|");
m.insert("BB01", "BB01|refNFe|");
m.insert("I", "I|cProd|cEAN|xProd|NCM|cBenef|EXTIPI|CFOP|uCom|qCom|vUnCom|vProd|cEANTrib|uTrib|qTrib|vUnTrib|vFrete|vSeg|vDesc|vOutro|indTot|xPed|nItemPed|nFCI|vItem|tpCredPresIBSZFM|indBemMovelUsado|");
m
}
pub(super) fn structure_400_sebrae() -> HashMap<&'static str, &'static str> {
structure! {
"NOTAFISCAL" => "NOTAFISCAL|qtd|",
"A" => "A|versao|Id|",
"B" => "B|cUF|cNF|natOp|mod|serie|nNF|dhEmi|dhSaiEnt|tpNF|idDest|cMunFG|tpImp|tpEmis|cDV|tpAmb|finNFe|indFinal|indPres|indIntermed|procEmi|verProc|dhCont|xJust|",
"BA" => "BA|",
"BA02" => "BA02|refNFe|",
"C" => "C|xNome|xFant|IE|IEST|IM|CNAE|CRT|",
"C02" => "C02|CNPJ|",
"C02A" => "C02a|CPF|",
"C05" => "C05|xLgr|nro|xCpl|xBairro|cMun|xMun|UF|CEP|cPais|xPais|fone|",
"D" => "D|CNPJ|xOrgao|matr|xAgente|fone|UF|nDAR|dEmi|vDAR|repEmi|dPag|",
"E" => "E|xNome|indIEDest|IE|ISUF|IM|email|",
"E02" => "E02|CNPJ|",
"E03" => "E03|CPF|",
"E03A" => "E03a|idEstrangeiro|",
"E05" => "E05|xLgr|nro|xCpl|xBairro|cMun|xMun|UF|CEP|cPais|xPais|fone|",
"H" => "H|item|infAdProd|",
"I" => "I|cProd|cEAN|xProd|NCM|EXTIPI|CFOP|uCom|qCom|vUnCom|vProd|cEANTrib|uTrib|qTrib|vUnTrib|vFrete|vSeg|vDesc|vOutro|indTot|xPed|nItemPed|nFCI|",
"I05C" => "I05C|CEST|indEscala|CNPJFab|cBenef|",
"I80" => "I80|nLote|qLote|dFab|dVal|cAgreg|",
"M" => "M|vTotTrib|",
"N" => "N|",
"N02" => "N02|orig|CST|modBC|vBC|pICMS|vICMS|pFCP|vFCP|",
"N03" => "N03|orig|CST|modBC|vBC|pICMS|vICMS|vBCFCP|pFCP|vFCP|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|",
"N04" => "N04|orig|CST|modBC|pRedBC|vBC|pICMS|vICMS|vBCFCP|pFCP|vFCP|vICMSDeson|motDesICMS|",
"N05" => "N05|orig|CST|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|vICMSDeson|motDesICMS|",
"N06" => "N06|orig|CST|vICMSDeson|motDesICMS|indDeduzDeson|",
"N07" => "N07|orig|CST|modBC|pRedBC|vBC|pICMS|vICMSOp|pDif|vICMSDif|vICMS|vBCFCP|pFCP|vFCP|",
"N08" => "N08|orig|CST|vBCSTRet|pST|vICMSSubstituto|vICMSSTRet|vBCFCPSTRet|pFCPSTRet|vFCPSTRet|pRedBCEfet|vBCEfet|pICMSEfet|vICMSEfet|",
"N09" => "N09|orig|CST|modBC|pRedBC|vBC|pICMS|vICMS|vBCFCP|pFCP|vFCP|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|vICMSDeson|motDesICMS|",
"N10" => "N10|orig|CST|modBC|vBC|pRedBC|pICMS|vICMS|vBCFCP|pFCP|vFCP|modBCST|pMVAST|pRedBCST|vBCST|pICMSST|vICMSST|vBCFCPST|pFCPST|vFCPST|vICMSDeson|motDesICMS|",
"O" => "O|CNPJProd|cSelo|qSelo|cEnq|",
"O07" => "O07|CST|vIPI|",
"O08" => "O08|CST|",
"O10" => "O10|vBC|pIPI|",
"Q" => "Q|",
"Q02" => "Q02|CST|vBC|pPIS|vPIS|",
"Q04" => "Q04|CST|",
"S" => "S|",
"S02" => "S02|CST|vBC|pCOFINS|vCOFINS|",
"S04" => "S04|CST|",
"W" => "W|",
"W02" => "W02|vBC|vICMS|vICMSDeson|vFCP|vBCST|vST|vFCPST|vFCPSTRet|vProd|vFrete|vSeg|vDesc|vII|vIPI|vIPIDevol|vPIS|vCOFINS|vOutro|vNF|vTotTrib|",
"W04C" => "W04c|vFCPUFDest|",
"W04E" => "W04e|vICMSUFDest|",
"W04G" => "W04g|vICMSUFRemet|",
"X" => "X|modFrete|",
"X03" => "X03|xNome|IE|xEnder|xMun|UF|",
"X04" => "X04|CNPJ|",
"X05" => "X05|CPF|",
"X26" => "X26|qVol|esp|marca|nVol|pesoL|pesoB|",
"Y" => "Y|",
"Y02" => "Y02|nFat|vOrig|vDesc|vLiq|",
"Y07" => "Y07|nDup|dVenc|vDup|",
"YA" => "YA|vTroco|",
"YA01" => "YA01|indPag|tPag|vPag|",
"YA04" => "YA04|tpIntegra|CNPJ|tBand|cAut|CNPJReceb|idTermPag|",
"Z" => "Z|infAdFisco|infCpl|",
"ZD" => "ZD|CNPJ|xContato|email|fone|CSRT|idCSRT|"
}
}