1#![no_std]
2#![cfg_attr(docsrs, feature(doc_auto_cfg))]
3#![doc = include_str!("../README.md")]
4#![doc(
5 html_logo_url = "https://raw.githubusercontent.com/RustCrypto/media/6ee8e381/logo.svg",
6 html_favicon_url = "https://raw.githubusercontent.com/RustCrypto/media/6ee8e381/logo.svg"
7)]
8#![forbid(unsafe_code)]
9#![warn(
10 clippy::arithmetic_side_effects,
11 clippy::panic,
12 clippy::panic_in_result_fn,
13 clippy::unwrap_used,
14 missing_docs,
15 rust_2018_idioms,
16 unused_lifetimes,
17 unused_qualifications
18)]
19
20#[cfg(feature = "alloc")]
21#[macro_use]
22extern crate alloc;
23#[cfg(feature = "std")]
24extern crate std;
25
26mod checked;
27mod decode;
28mod encode;
29mod error;
30mod label;
31mod reader;
32mod writer;
33
34pub use crate::{
35 checked::CheckedSum,
36 decode::Decode,
37 encode::Encode,
38 error::{Error, Result},
39 label::{Label, LabelError},
40 reader::{NestedReader, Reader},
41 writer::Writer,
42};
43
44#[cfg(feature = "base64")]
45pub use {
46 crate::{reader::Base64Reader, writer::Base64Writer},
47 base64,
48};
49
50#[cfg(feature = "pem")]
51pub use {
52 crate::{decode::DecodePem, encode::EncodePem},
53 pem::{self, LineEnding},
54};
55
56#[cfg(feature = "pem")]
58const PEM_LINE_WIDTH: usize = 70;