pub fn write_header<W: WriteBytesExt>(mut writer: W, version: u8) -> std::io::Result<usize> {
/// Reads a Pot header. See [`write_header`] for more information. Returns the version number contained within.
pub fn write_special<W: WriteBytesExt>(writer: W, special: Special) -> std::io::Result<usize> {
/// Writes an [`Kind::Int`] atom with the given value. Will encode in a smaller format if possible.
/// Writes an [`Kind::Int`] atom with the given value. Will encode in a smaller format if possible.
/// Writes an [`Kind::Int`] atom with the given value. Will encode in a smaller format if possible.
/// Writes an [`Kind::Int`] atom with the given value. Will encode in a smaller format if possible.
/// Writes an [`Kind::Int`] atom with the given value. Will encode in a smaller format if possible.
/// Writes an [`Kind::Int`] atom with the given value. Will encode in a smaller format if possible.
/// Writes an [`Kind::Int`] atom with the given value. Will encode in a smaller format if possible.
/// Writes an [`Kind::Int`] atom with the given value. Will encode in a smaller format if possible.
pub fn write_u16<W: WriteBytesExt>(mut writer: W, value: u16) -> std::io::Result<usize> {
/// Writes an [`Kind::Int`] atom with the given value. Will encode in a smaller format if possible.
/// Writes an [`Kind::Int`] atom with the given value. Will encode in a smaller format if possible.
/// Writes an [`Kind::Int`] atom with the given value. Will encode in a smaller format if possible.
/// Writes an [`Kind::Int`] atom with the given value. Will encode in a smaller format if possible.
pub fn write_u64<W: WriteBytesExt>(mut writer: W, value: u64) -> std::io::Result<usize> {
/// Writes an [`Kind::Int`] atom with the given value. Will encode in a smaller format if possible.
pub fn write_bytes<W: WriteBytesExt>(mut writer: W, value: &[u8]) -> std::io::Result<usize> {
/// An integer type that can safely convert between other number types using compile-time evaluation.
pub(crate) fn update_budget(budget: &mut usize, read_amount: usize) -> Result<(), Error> {
/// A floating point number that can safely convert between other number types using compile-time evaluation when possible.