pub struct Workspace(/* private fields */);Expand description
Every loaded package plus the workspace root’s own [imports] map.
imports is ADR-0002 §5 step 3 only — the shared default for every
member. It is not merged with member maps: the task 9 resolver walks
the order itself — workspace member (package_of) → the referencing
package’s own Package::imports → this map → error. In a standalone
package load the manifest’s [imports] ride on the packages and this map
is empty.
Implementations§
Source§impl Workspace
impl Workspace
pub fn ingredient(db: &dyn Database) -> &IngredientImpl<Self>
pub fn ingredient_mut( zalsa_mut: &mut Zalsa, ) -> (&mut IngredientImpl<Self>, &mut Runtime)
Source§impl Workspace
impl Workspace
pub fn new<Db_>( db: &Db_, packages: Vec<Package>, imports: BTreeMap<String, String>, ) -> Self
pub fn builder( packages: Vec<Package>, imports: BTreeMap<String, String>, ) -> <Self as HasBuilder>::Builder
pub fn packages<'db, Db_>(self, db: &'db Db_) -> &'db Vec<Package>
pub fn imports<'db, Db_>(self, db: &'db Db_) -> &'db BTreeMap<String, String>
pub fn set_packages<'db, Db_>( self, db: &'db mut Db_, ) -> impl Setter<FieldTy = Vec<Package>>
pub fn set_imports<'db, Db_>( self, db: &'db mut Db_, ) -> impl Setter<FieldTy = BTreeMap<String, String>>
Trait Implementations§
Source§impl Configuration for Workspace
impl Configuration for Workspace
const LOCATION: Location
const DEBUG_NAME: &'static str = "Workspace"
const FIELD_DEBUG_NAMES: &'static [&'static str]
Source§type Fields = (Vec<Package>, BTreeMap<String, String>)
type Fields = (Vec<Package>, BTreeMap<String, String>)
A (possibly empty) tuple of the fields for this struct.
type Revisions = [Revision; 2]
type Durabilities = [Durability; 2]
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>
Serialize the fields using
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>
Deserialize the fields using
serde. Read moreimpl Copy for Workspace
impl Eq for Workspace
Source§impl SalsaStructInDb for Workspace
impl SalsaStructInDb for Workspace
Source§const LEAF_TYPE_IDS: &'static [ConstTypeId]
const LEAF_TYPE_IDS: &'static [ConstTypeId]
The type IDs of all concrete (leaf) salsa struct types that this type can contain. Read more
type MemoIngredientMap = MemoIngredientSingletonIndex
Source§fn lookup_ingredient_index(aux: &Zalsa) -> IngredientIndices
fn lookup_ingredient_index(aux: &Zalsa) -> IngredientIndices
Lookup or create ingredient indices. Read more
Source§fn entries(zalsa: &Zalsa) -> impl Iterator<Item = DatabaseKeyIndex> + '_
fn entries(zalsa: &Zalsa) -> impl Iterator<Item = DatabaseKeyIndex> + '_
Returns the IDs of any instances of this struct in the database.
impl SalsaValue for Workspace
impl StructuralPartialEq for Workspace
Auto Trait Implementations§
impl Freeze for Workspace
impl RefUnwindSafe for Workspace
impl Send for Workspace
impl Sync for Workspace
impl Unpin for Workspace
impl UnsafeUnpin for Workspace
impl UnwindSafe for Workspace
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
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
Compare self to
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more