Files
ahash
aho_corasick
ansi_term
anyhow
atty
bech32
bincode
bit_set
bit_vec
bitcoin
blockdata
consensus
network
policy
util
bitcoin_hashes
bitflags
cfg_if
clap
app
args
completions
convert_case
core2
crunchy
cryptoxide
blake2
chacha
sha2
enum_primitive
fancy_regex
hashbrown
hex
hex_literal
itoa
libc
unix
libloading
memchr
memchr
memmem
num
num_bigint
bigint
biguint
num_complex
num_integer
num_iter
num_rational
num_traits
ordered_float
paste
proc_macro2
proc_macro_error
proc_macro_error_attr
qimalloc
quote
regex
regex_syntax
ast
hir
unicode_tables
remain
rust_ssvm
ryu
secp256k1
secp256k1_sys
serde
de
private
ser
serde_derive
serde_json
serde_value
sewup
kv
rdb
runtimes
token
types
sewup_derive
ss_ewasm_api
ssvm_evmc_client
ssvm_evmc_sys
strsim
syn
attr.rsawait.rsbigint.rsbuffer.rscustom_keyword.rscustom_punctuation.rsdata.rsderive.rsdiscouraged.rserror.rsexport.rsexpr.rsext.rsfile.rsgenerics.rsgroup.rsident.rsitem.rslib.rslifetime.rslit.rslookahead.rsmac.rsmacros.rsop.rsparse.rsparse_macro_input.rsparse_quote.rspat.rspath.rsprint.rspunctuated.rsreserved.rssealed.rsspan.rsspanned.rsstmt.rsthread.rstoken.rsty.rsverbatim.rswhitespace.rs
textwrap
thiserror
thiserror_impl
tiny_keccak
toml
unicode_width
unicode_xid
vec_map
>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
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)
}