diff --git a/Cargo.toml b/Cargo.toml index 9a6e294..a8c0fd6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rxing" -version = "0.2.20" +version = "0.2.21" description="A rust port of the zxing barcode library." license="Apache-2.0" repository="https://github.com/hschimke/rxing" @@ -38,11 +38,25 @@ java-rand = "0.2.0" rand = "0.8.5" [features] -default = ["image", "serde"] +default = ["image"] +#/// Enable features required for image manipulation and reading. image = ["dep:image", "dep:imageproc"] + +#/// Allows the ability to force ISO/IED 18004 compliance. +#/// Leave disabled unless specificially needed. allow_forced_iso_ied_18004_compliance = [] + +#/// Enable support for writing SVG files svg_write = ["dep:svg"] + +#/// Enable support for reading SVG files svg_read = ["dep:resvg", "image"] + +#/// Enable support building this module in WASM wasm_support = ["chrono/wasmbind"] + +#/// Enable experimental features, risky. experimental_features = [] + +#/// Adds support for serde Serialize and Deserialize for outward facing structs serde = ["dep:serde"] \ No newline at end of file diff --git a/README.md b/README.md index e8935b7..e062e8e 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,10 @@ fn main() { ``` ## Latest Release Notes +* *v0.2.21* -> Adds partial support for detecting and decoding rotated MaxiCode symbols. Adds support for basic serialization of many public facing datatypes using serde (gated behind `serde` feature). + + Rotation detection is no longer gated behind the `experimental_features` flag. Rotation of maxicodes is simplistic. Current tests detect about 50% of codes when rotated 90 degrees. Detection of skewed MaxiCodes is now behind `experimental_features`. + * *v0.2.20* -> Adds rudimentary support for MaxiCode detection. The detector works best on unrotated images on a flat plane. Very basic support for rotation correction is gated behind the `experimental_features` flag, but it is not ready for most use cases. The MaxiCode detector is gated behind the `TryHarder` decoder hint, by default rxing uses the old `PureBarcode` implementation. * *v0.2.19* -> The datamatrix detector for the c++ version of zxing [zxing-cpp](https://github.com/zxing-cpp/zxing-cpp) has been ported. This features a dramatically different method of detecting datamatrix symbols. If you want to fallback to the original version, include the decode hint TRY_HARDER. * *v0.2.15* -> Support for reading and writing svg files through the feature flags `svg_read` and `svg_write`. diff --git a/src/exceptions.rs b/src/exceptions.rs index fce786b..9c560a2 100644 --- a/src/exceptions.rs +++ b/src/exceptions.rs @@ -1,5 +1,9 @@ use std::{error::Error, fmt}; +#[cfg(feature = "serde")] +use serde::{Deserialize, Serialize}; + +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[derive(Debug, PartialEq, Eq)] pub enum Exceptions { IllegalArgumentException(Option),