trait Segment: Debug {
// Required methods
fn record_segment_res(
resolver: &mut CrateResolver<'_, '_>,
segment: &Self,
res: Res<NodeId>,
);
fn ident(&self) -> Ident;
// Provided method
fn format_iter<'a>(segments: impl IntoIterator<Item = &'a Self>) -> String
where Self: Sized + 'a { ... }
}Expand description
Abstraction over a “segment” so we can use CrateResolver::resolve_path_with_ribs with paths
from different sources (e.g., surface::PathSegment, surface::ExprPathSegment)
Required Methods§
fn record_segment_res( resolver: &mut CrateResolver<'_, '_>, segment: &Self, res: Res<NodeId>, )
fn ident(&self) -> Ident
Provided Methods§
fn format_iter<'a>(segments: impl IntoIterator<Item = &'a Self>) -> Stringwhere
Self: Sized + 'a,
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.