#![cfg_attr(not(feature = "std"), no_std)]
#[macro_use]
extern crate alloc;
mod prelude {
pub use alloc::{borrow::Cow, boxed::Box, string::String, vec::Vec};
}
use prelude::*;
#[macro_export]
#[cfg(debug_assertions)]
macro_rules! unreachable {
( $($e:expr)? ) => {
core::unreachable!($($e)?)
};
}
#[macro_export]
#[cfg(not(debug_assertions))]
macro_rules! unreachable {
( $($e:expr)? ) => {
unsafe { core::hint::unreachable_unchecked() }
};
}
mod decode;
pub use decode::decode;
#[cfg(feature = "std")]
pub use encode::Base64Encoder;
mod encode;
pub use encode::encode;
#[cfg(feature = "bindings")]
mod bindings;
pub type Result<T> = core::result::Result<T, Cow<'static, str>>;