blob: 583264372f597df8ce89b9475e6d3a8cac84b930 [file] [log] [blame]
use proc_macro2::TokenStream;
use quote::TokenStreamExt;
use std::fmt::{self, Display};
use syn::Error;
use crate::compare::Path;
impl Display for Path {
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
for (i, segment) in self.segments.iter().enumerate() {
if i > 0 {
formatter.write_str("::")?;
}
segment.fmt(formatter)?;
}
Ok(())
}
}
pub fn error(lesser: &Path, greater: &Path) -> Error {
let mut spans = TokenStream::new();
spans.append_all(&lesser.segments);
let msg = format!("{} should sort before {}", lesser, greater);
Error::new_spanned(spans, msg)
}