pub struct SourceRoot(/* private fields */);Expand description
The project’s file set — a salsa input so project-wide queries (the global class_name
registry, M1) iterate the files incrementally. It changes only when a file is added or
removed, never on a body edit, and is held at MEDIUM durability — so a keystroke (a LOW
change) never invalidates project-wide derived data.
Implementations§
Source§impl SourceRoot
impl SourceRoot
pub fn ingredient(db: &dyn Database) -> &IngredientImpl<Self>
pub fn ingredient_mut( zalsa_mut: &mut Zalsa, ) -> (&mut IngredientImpl<Self>, &mut Runtime)
Source§impl SourceRoot
impl SourceRoot
pub fn new<Db_>(db: &Db_, files: Vec<FileText>, complete: bool) -> Self
pub fn builder( files: Vec<FileText>, complete: bool, ) -> <Self as HasBuilder>::Builder
Sourcepub fn files<'db, Db_>(self, db: &'db Db_) -> &'db Vec<FileText>
pub fn files<'db, Db_>(self, db: &'db Db_) -> &'db Vec<FileText>
Every file currently in the project, ordered by FileId for determinism.
Sourcepub fn complete<'db, Db_>(self, db: &'db Db_) -> bool
pub fn complete<'db, Db_>(self, db: &'db Db_) -> bool
The loader’s assertion that this file set is the whole project (every .gd under the
project root was fed in). Default false. Absence-based diagnostics (UNDEFINED_FUNCTION
/ UNDEFINED_IDENTIFIER) key on this: proving a name is defined nowhere requires seeing
everywhere, and neither source_root().is_some() (true after one lone file) nor
project_config().is_some() (a single-file CLI run still discovers project.godot) can
establish that — only the loader knows whether it walked the whole root.
pub fn set_files<'db, Db_>( self, db: &'db mut Db_, ) -> impl Setter<FieldTy = Vec<FileText>>
pub fn set_complete<'db, Db_>( self, db: &'db mut Db_, ) -> impl Setter<FieldTy = bool>
Trait Implementations§
Source§impl Clone for SourceRoot
impl Clone for SourceRoot
Source§fn clone(&self) -> SourceRoot
fn clone(&self) -> SourceRoot
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Configuration for SourceRoot
impl Configuration for SourceRoot
const LOCATION: Location
const DEBUG_NAME: &'static str = "SourceRoot"
const FIELD_DEBUG_NAMES: &'static [&'static str]
Source§type Struct = SourceRoot
type Struct = SourceRoot
Id)Source§type Durabilities = [Durability; 2]
type Durabilities = [Durability; 2]
persistence only.Source§fn serialize<S: Serializer>(
fields: &Self::Fields,
serializer: S,
) -> Result<S::Ok, S::Error>
fn serialize<S: Serializer>( fields: &Self::Fields, serializer: S, ) -> Result<S::Ok, S::Error>
serde. Read moreSource§fn deserialize<'de, D: Deserializer<'de>>(
deserializer: D,
) -> Result<Self::Fields, D::Error>
fn deserialize<'de, D: Deserializer<'de>>( deserializer: D, ) -> Result<Self::Fields, D::Error>
serde. Read moreimpl Copy for SourceRoot
impl Eq for SourceRoot
Source§impl HasJar for SourceRoot
impl HasJar for SourceRoot
Source§impl Hash for SourceRoot
impl Hash for SourceRoot
Source§impl PartialEq for SourceRoot
impl PartialEq for SourceRoot
Source§fn eq(&self, other: &SourceRoot) -> bool
fn eq(&self, other: &SourceRoot) -> bool
self and other values to be equal, and is used by ==.Source§impl SalsaStructInDb for SourceRoot
impl SalsaStructInDb for SourceRoot
Source§const LEAF_TYPE_IDS: &'static [ConstTypeId]
const LEAF_TYPE_IDS: &'static [ConstTypeId]
type MemoIngredientMap = MemoIngredientSingletonIndex
Source§fn lookup_ingredient_index(aux: &Zalsa) -> IngredientIndices
fn lookup_ingredient_index(aux: &Zalsa) -> IngredientIndices
Source§fn entries(zalsa: &Zalsa) -> impl Iterator<Item = DatabaseKeyIndex> + '_
fn entries(zalsa: &Zalsa) -> impl Iterator<Item = DatabaseKeyIndex> + '_
impl StructuralPartialEq for SourceRoot
Source§impl Update for SourceRoot
impl Update for SourceRoot
Auto Trait Implementations§
impl Freeze for SourceRoot
impl RefUnwindSafe for SourceRoot
impl Send for SourceRoot
impl Sync for SourceRoot
impl Unpin for SourceRoot
impl UnsafeUnpin for SourceRoot
impl UnwindSafe for SourceRoot
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> HashEqLike<&T> for T
impl<T> HashEqLike<&T> for T
Source§impl<T> HashEqLike<Cow<'_, T>> for T
impl<T> HashEqLike<Cow<'_, T>> for T
Source§impl<T> HashEqLike<T> for T
impl<T> HashEqLike<T> for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.