1#![cfg_attr(not(feature = "std"), no_std)]
16
17#[macro_use]
18extern crate alloc;
19
20mod prelude {
21 pub use alloc::{borrow::Cow, boxed::Box, string::String, vec::Vec};
22}
23use prelude::*;
24
25#[macro_export]
26#[cfg(debug_assertions)]
27macro_rules! unreachable {
28 ( $($e:expr)? ) => {
29 core::unreachable!($($e)?)
30 };
31}
32
33#[macro_export]
34#[cfg(not(debug_assertions))]
35macro_rules! unreachable {
36 ( $($e:expr)? ) => {
37 unsafe { core::hint::unreachable_unchecked() }
38 };
39}
40
41mod decode;
42pub use decode::decode;
43#[cfg(feature = "std")]
44pub use encode::Base64Encoder;
45
46mod encode;
47pub use encode::encode;
48
49#[cfg(feature = "bindings")]
50mod bindings;
51
52pub type Result<T> = core::result::Result<T, Cow<'static, str>>;