chore: create fork of yaserde to release to crates.io (#2)

This commit is contained in:
Benedikt Schneppe
2025-01-17 19:24:46 +01:00
committed by GitHub
parent 4006542d4e
commit 483acc44cc
6 changed files with 48 additions and 46 deletions

54
Cargo.lock generated
View File

@@ -440,6 +440,8 @@ name = "einvoice"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"chrono", "chrono",
"einvoice_deps_yaserde",
"einvoice_deps_yaserde_derive",
"lopdf", "lopdf",
"rayon", "rayon",
"regex", "regex",
@@ -448,8 +450,32 @@ dependencies = [
"thiserror 2.0.11", "thiserror 2.0.11",
"uniffi", "uniffi",
"xmltree", "xmltree",
"yaserde", ]
"yaserde_derive",
[[package]]
name = "einvoice_deps_yaserde"
version = "0.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86694472f7474822a326d0da348f4e04afb3bf2174d156999b2ad99cd8e36fe5"
dependencies = [
"log",
"xml-rs",
]
[[package]]
name = "einvoice_deps_yaserde_derive"
version = "0.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0eef462f0fe1a89e6e721773d85fb06f9d7078cfbfb08895974030b6726612d"
dependencies = [
"heck",
"log",
"proc-macro2",
"quote",
"serde",
"serde_tokenstream",
"syn 2.0.91",
"xml-rs",
] ]
[[package]] [[package]]
@@ -1665,30 +1691,6 @@ dependencies = [
"xml-rs", "xml-rs",
] ]
[[package]]
name = "yaserde"
version = "0.12.0"
source = "git+https://github.com/BSchneppe/yaserde.git?branch=feat%2Fnested#f1a52f218a1b7e93d8c53386e67d42b46548fa00"
dependencies = [
"log",
"xml-rs",
]
[[package]]
name = "yaserde_derive"
version = "0.12.0"
source = "git+https://github.com/BSchneppe/yaserde.git?branch=feat%2Fnested#f1a52f218a1b7e93d8c53386e67d42b46548fa00"
dependencies = [
"heck",
"log",
"proc-macro2",
"quote",
"serde",
"serde_tokenstream",
"syn 2.0.91",
"xml-rs",
]
[[package]] [[package]]
name = "zerocopy" name = "zerocopy"
version = "0.7.35" version = "0.7.35"

View File

@@ -4,8 +4,8 @@ version = "0.1.0"
edition = "2021" edition = "2021"
[dependencies] [dependencies]
yaserde = { git = "https://github.com/BSchneppe/yaserde.git" , branch = "feat/nested"} einvoice_deps_yaserde = { version = "0.0.1"}
yaserde_derive ={ git = "https://github.com/BSchneppe/yaserde.git" , branch = "feat/nested"} einvoice_deps_yaserde_derive ={ version = "0.0.1"}
thiserror = "2.0.11" thiserror = "2.0.11"
rayon = "1.10.0" rayon = "1.10.0"
uniffi = { version = "0.28.3", features = ["cli"] } uniffi = { version = "0.28.3", features = ["cli"] }

View File

@@ -1,4 +1,4 @@
use yaserde_derive::{YaDeserialize, YaSerialize}; use einvoice_deps_yaserde_derive::{YaDeserialize, YaSerialize};
#[derive(YaSerialize, YaDeserialize, uniffi::Record)] #[derive(YaSerialize, YaDeserialize, uniffi::Record)]
#[yaserde( #[yaserde(
default_namespace = "", default_namespace = "",

View File

@@ -12,6 +12,11 @@ use crate::cii::cii_business_rule_validator;
use crate::ubl::ubl_business_rule_validator; use crate::ubl::ubl_business_rule_validator;
use crate::ZugferdProfile::EN16931; use crate::ZugferdProfile::EN16931;
pub use cii::cii_model::CrossIndustryInvoice; pub use cii::cii_model::CrossIndustryInvoice;
use einvoice_deps_yaserde::__xml::attribute::OwnedAttribute;
use einvoice_deps_yaserde::__xml::namespace::Namespace;
use einvoice_deps_yaserde::de::Deserializer;
use einvoice_deps_yaserde::ser::Serializer;
use einvoice_deps_yaserde::{YaDeserialize, YaSerialize};
use lopdf::Document; use lopdf::Document;
use lopdf::Error; use lopdf::Error;
use lopdf::Object; use lopdf::Object;
@@ -20,11 +25,6 @@ use std::io::{Read, Write};
use std::sync::Arc; use std::sync::Arc;
use thiserror::Error; use thiserror::Error;
pub use ubl::ubl_model::UblInvoice; pub use ubl::ubl_model::UblInvoice;
use yaserde::__xml::attribute::OwnedAttribute;
use yaserde::__xml::namespace::Namespace;
use yaserde::de::Deserializer;
use yaserde::ser::Serializer;
use yaserde::{YaDeserialize, YaSerialize};
uniffi::setup_scaffolding!(); uniffi::setup_scaffolding!();
#[derive(Debug, uniffi::Error, Error)] #[derive(Debug, uniffi::Error, Error)]
@@ -104,7 +104,7 @@ impl YaSerialize for InvoiceStandard {
#[uniffi::export] #[uniffi::export]
pub fn validate_invoice(xml: &str) -> Result<InvoiceStandard, InvoiceError> { pub fn validate_invoice(xml: &str) -> Result<InvoiceStandard, InvoiceError> {
let invoice_standard: InvoiceStandard = let invoice_standard: InvoiceStandard =
yaserde::de::from_str(xml).map_err(InvoiceError::ParseError)?; einvoice_deps_yaserde::de::from_str(xml).map_err(InvoiceError::ParseError)?;
match &invoice_standard { match &invoice_standard {
InvoiceStandard::UBL(invoice) => { InvoiceStandard::UBL(invoice) => {

View File

@@ -1,19 +1,19 @@
use crate::UniffiCustomTypeConverter; use crate::UniffiCustomTypeConverter;
use chrono::{DateTime, NaiveDate, NaiveTime, TimeZone, Utc}; use chrono::{DateTime, NaiveDate, NaiveTime, TimeZone, Utc};
use einvoice_deps_yaserde::__xml::attribute::OwnedAttribute;
use einvoice_deps_yaserde::__xml::name::OwnedName;
use einvoice_deps_yaserde::__xml::namespace::Namespace;
use einvoice_deps_yaserde::__xml::reader::XmlEvent as ReaderXmlEvent;
use einvoice_deps_yaserde::__xml::writer::XmlEvent;
use einvoice_deps_yaserde::de::Deserializer;
use einvoice_deps_yaserde::ser::Serializer;
use einvoice_deps_yaserde::{YaDeserialize, YaSerialize};
use einvoice_deps_yaserde_derive::{YaDeserialize, YaSerialize};
use rust_decimal::prelude::ToPrimitive; use rust_decimal::prelude::ToPrimitive;
use rust_decimal::Decimal; use rust_decimal::Decimal;
use std::io::Read; use std::io::Read;
use std::str::FromStr; use std::str::FromStr;
use std::time::SystemTime; use std::time::SystemTime;
use yaserde::__xml::attribute::OwnedAttribute;
use yaserde::__xml::name::OwnedName;
use yaserde::__xml::namespace::Namespace;
use yaserde::__xml::reader::XmlEvent as ReaderXmlEvent;
use yaserde::__xml::writer::XmlEvent;
use yaserde::de::Deserializer;
use yaserde::ser::Serializer;
use yaserde::{YaDeserialize, YaSerialize};
use yaserde_derive::{YaDeserialize, YaSerialize};
#[derive(Debug)] #[derive(Debug)]
pub struct Iso8601Date(NaiveDate); pub struct Iso8601Date(NaiveDate);

View File

@@ -17,7 +17,7 @@ mod tests {
let invoice = validate_invoice(&original).unwrap(); let invoice = validate_invoice(&original).unwrap();
// Serialize // Serialize
let serialized = yaserde::ser::to_string(&invoice).unwrap(); let serialized = einvoice_deps_yaserde::ser::to_string(&invoice).unwrap();
// Normalize both strings // Normalize both strings
let normalized_original = normalize_xml(&original); let normalized_original = normalize_xml(&original);
@@ -38,7 +38,7 @@ mod tests {
let invoice = validate_invoice(&original).unwrap(); let invoice = validate_invoice(&original).unwrap();
// Serialize // Serialize
let serialized = yaserde::ser::to_string(&invoice).unwrap(); let serialized = einvoice_deps_yaserde::ser::to_string(&invoice).unwrap();
// Normalize both strings // Normalize both strings
let normalized_original = normalize_xml(&original); let normalized_original = normalize_xml(&original);