pub struct TraitFlags {
pub auto: bool,
pub marker: bool,
pub upstream: bool,
pub fundamental: bool,
pub non_enumerable: bool,
pub coinductive: bool,
}
Fields§
§auto: bool
An “auto trait” is one that is “automatically implemented” for every struct, so long as no explicit impl is given.
Examples are Send
and Sync
.
marker: bool
§upstream: bool
Indicate that a trait is defined upstream (in a dependency), used during coherence checking.
fundamental: bool
A fundamental trait is a trait where adding an impl for an existing type
is considered a breaking change. Examples of fundamental traits are the
closure traits like Fn
and FnMut
.
As of this writing (2020-03-27), fundamental traits are declared by the
unstable #[fundamental]
attribute in rustc, and hence cannot appear
outside of the standard library.
non_enumerable: bool
Indicates that chalk cannot list all of the implementations of the given trait, likely because it is a publicly exported trait in a library.
Currently (2020-03-27) rustc and rust-analyzer mark all traits as non_enumerable, and in the future it may become the only option.
coinductive: bool
Trait Implementations§
Source§impl Clone for TraitFlags
impl Clone for TraitFlags
Source§fn clone(&self) -> TraitFlags
fn clone(&self) -> TraitFlags
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more