asciidoc-parser 0.15.1

Parser for AsciiDoc format
Documentation
use std::{
    collections::HashMap,
    fmt::{Debug, Error, Formatter},
};

pub(crate) struct DebugSliceReference<'a, T: Debug>(pub(crate) &'a [T]);

impl<'a, T: Debug> Debug for DebugSliceReference<'a, T> {
    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> {
        f.write_str("&")?;
        f.debug_list().entries(self.0.iter()).finish()
    }
}

pub(crate) struct DebugHashMapFrom<'a, K: Debug, V: Debug>(pub(crate) &'a HashMap<K, V>);

impl<'a, K: Debug, V: Debug> Debug for DebugHashMapFrom<'a, K, V> {
    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> {
        f.write_str("HashMap::from(")?;

        let mut sorted: Vec<_> = self.0.iter().collect();
        sorted.sort_by_key(|(k, _)| format!("{:?}", k));

        f.debug_list()
            .entries(sorted.iter().map(|(k, v)| (k, v)))
            .finish()?;

        f.write_str(")")
    }
}