1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
//! Handling of data in Basic Encoding Rules. //! //! This crate allows decoding and encoding of data encoded in ASN.1’s _Basic //! Encoding Rules_ as defined in ITU recommendation X.690 as well as their //! stricter companions _Cannonical Encoding Rules_ and _Distringuished //! Encoding Rules._ //! //! You will find a short introduction to ASN.1 and encoding rules as well //! as a discussion of how decoding and encoding with the crate work in //! the [guide] module. The documentation with all the other //! modules serves as a reference documentation. //! //! The most important modules of the crate are [decode] and [encode] that //! provide the machinery for implementing decoding and encoding of data. //! //! Additionally, the crate provides a number of types that help dealing //! with the more difficult universal types in ASN.1. Specifically, the //! module [int] provides variable length integers, the module //! [string] contains types for the various kinds of strings defined in //! ASN.1, and [oid] deals with object identifiers. Finally, [`Captured`] //! provides a way to keep encoded data around for later processing. //! //! [guide]: guide/index.html //! [decode]: decode/index.html //! [encode]: encode/index.thml //! [about_asn1]: about_asn1/index.html //! [int]: int/index.html //! [string]: string/index.html //! [oid]: oid/index.html //! [`Captured`]: captured/struct.Captured.html #![allow(renamed_and_removed_lints, unknown_lints)] // We have seemingly redundant closures (i.e., closures where just providing // a function would also work) that cannot be removed due to lifetime issues. #![allow(redundant_closure)] //--- Re-exports pub use self::captured::Captured; pub use self::int::{Integer, Unsigned}; pub use self::mode::Mode; pub use self::oid::{ConstOid, Oid}; pub use self::string::{ BitString, OctetString, Ia5String, NumericString, PrintableString, Utf8String, }; pub use self::tag::Tag; //--- Public modules #[macro_use] pub mod debug; pub mod decode; pub mod encode; pub mod int; pub mod oid; pub mod string; //--- Private modules mod captured; mod length; mod mode; mod tag; //--- Elaborate documentation // pub mod guide;