Skip to main content

Package

Struct Package 

Source
pub struct Package(/* private fields */);
Expand description

One loaded package: its dotted name (e.g. veh.common), its files, where it came from, its own manifest’s [imports] map, and its interface lock.

imports is ADR-0002 §5 step 2: the [imports] of the manifest governing this package’s directory tree. It shadows the workspace [imports] for this package only — a member’s pin is never visible to a sibling member. Every package loaded from one manifest’s tree (the root and its subdirectory packages) carries that manifest’s map; a single-file package and ridl.std carry an empty map.

Implementations§

Source§

impl Package

Source

pub fn ingredient(db: &dyn Database) -> &IngredientImpl<Self>

Source

pub fn ingredient_mut( zalsa_mut: &mut Zalsa, ) -> (&mut IngredientImpl<Self>, &mut Runtime)

Source§

impl Package

Source

pub fn new<Db_>( db: &Db_, name: String, files: Vec<InputFile>, origin: PackageOrigin, imports: BTreeMap<String, String>, default_timing: Option<String>, lock: Option<PackageLock>, ) -> Self
where Db_: ?Sized + Database,

Source

pub fn builder( name: String, files: Vec<InputFile>, origin: PackageOrigin, imports: BTreeMap<String, String>, default_timing: Option<String>, lock: Option<PackageLock>, ) -> <Self as HasBuilder>::Builder

Source

pub fn name<'db, Db_>(self, db: &'db Db_) -> &'db String
where Db_: ?Sized + Database,

Source

pub fn files<'db, Db_>(self, db: &'db Db_) -> &'db Vec<InputFile>
where Db_: ?Sized + Database,

Source

pub fn origin<'db, Db_>(self, db: &'db Db_) -> &'db PackageOrigin
where Db_: ?Sized + Database,

Source

pub fn imports<'db, Db_>(self, db: &'db Db_) -> &'db BTreeMap<String, String>
where Db_: ?Sized + Database,

Source

pub fn default_timing<'db, Db_>(self, db: &'db Db_) -> &'db Option<String>
where Db_: ?Sized + Database,

The raw [defaults].timing string that governs this package (ADR-0002 §5 precedence: package [defaults] shadows workspace [defaults], merged at load), or None when no manifest configures one — the checker then applies the built-in [100ms..1000ms] (ridl §9.1). Stored unparsed: ridl-core cannot depend on ridl-sem (E2 task 9).

Source

pub fn lock<'db, Db_>(self, db: &'db Db_) -> &'db Option<PackageLock>
where Db_: ?Sized + Database,

The package’s interfaces.lock, read by the loader from the package directory (lock design §2), or None when the directory has no such file, when the file is malformed (the loader reports RIDL-410 and drops it), or when the package was not loaded from a directory (a source string, ridl.std). The checker reads it to give every interface its number; without it every number is provisional.

Source

pub fn set_name<'db, Db_>( self, db: &'db mut Db_, ) -> impl Setter<FieldTy = String>
where Db_: ?Sized + Database,

Source

pub fn set_files<'db, Db_>( self, db: &'db mut Db_, ) -> impl Setter<FieldTy = Vec<InputFile>>
where Db_: ?Sized + Database,

Source

pub fn set_origin<'db, Db_>( self, db: &'db mut Db_, ) -> impl Setter<FieldTy = PackageOrigin>
where Db_: ?Sized + Database,

Source

pub fn set_imports<'db, Db_>( self, db: &'db mut Db_, ) -> impl Setter<FieldTy = BTreeMap<String, String>>
where Db_: ?Sized + Database,

Source

pub fn set_default_timing<'db, Db_>( self, db: &'db mut Db_, ) -> impl Setter<FieldTy = Option<String>>
where Db_: ?Sized + Database,

Source

pub fn set_lock<'db, Db_>( self, db: &'db mut Db_, ) -> impl Setter<FieldTy = Option<PackageLock>>
where Db_: ?Sized + Database,

Source

pub fn default_debug_fmt(this: Self, f: &mut Formatter<'_>) -> Result
where for<'__trivial_bounds> String: Debug, for<'__trivial_bounds> Vec<InputFile>: Debug, for<'__trivial_bounds> PackageOrigin: Debug, for<'__trivial_bounds> BTreeMap<String, String>: Debug, for<'__trivial_bounds> Option<String>: Debug, for<'__trivial_bounds> Option<PackageLock>: Debug,

Default debug formatting for this struct (may be useful if you define your own Debug impl)

Trait Implementations§

Source§

impl AsId for Package

Source§

fn as_id(&self) -> Id

Source§

impl Clone for Package

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Configuration for Package

Source§

const LOCATION: Location

Source§

const DEBUG_NAME: &'static str = "Package"

Source§

const FIELD_DEBUG_NAMES: &'static [&'static str]

Source§

const PERSIST: bool = false

Whether this struct should be persisted with the database.
Source§

type Singleton = NotSingleton

The singleton state for this input if any.
Source§

type Struct = Package

The input struct (which wraps an Id)
Source§

type Fields = (String, Vec<InputFile>, PackageOrigin, BTreeMap<String, String>, Option<String>, Option<PackageLock>)

A (possibly empty) tuple of the fields for this struct.
Source§

type Revisions = [Revision; 6]

Source§

type Durabilities = [Durability; 6]

Source§

fn serialize<S: Serializer>( fields: &Self::Fields, serializer: S, ) -> Result<S::Ok, S::Error>

Serialize the fields using serde. Read more
Source§

fn deserialize<'de, D: Deserializer<'de>>( deserializer: D, ) -> Result<Self::Fields, D::Error>

Deserialize the fields using serde. Read more
Source§

fn heap_size(_value: &Self::Fields) -> Option<usize>

Returns the size of any heap allocations in the output value, in bytes.
Source§

impl Copy for Package

Source§

impl Debug for Package

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Package

Source§

impl FromId for Package

Source§

fn from_id(id: Id) -> Self

Source§

impl HasBuilder for Package

Source§

type Builder = Builder_

Source§

impl HasJar for Package

Source§

const KIND: JarKind = zalsa_::JarKind::Struct

The [JarKind] for Self::Jar.
Source§

type Jar = JarImpl<Package>

The [Jar] associated with this ingredient.
Source§

impl Hash for Package

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Package

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl SalsaStructInDb for Package

Source§

const LEAF_TYPE_IDS: &'static [ConstTypeId]

The type IDs of all concrete (leaf) salsa struct types that this type can contain. Read more
Source§

type MemoIngredientMap = MemoIngredientSingletonIndex

Source§

fn lookup_ingredient_index(aux: &Zalsa) -> IngredientIndices

Lookup or create ingredient indices. Read more
Source§

fn entries(zalsa: &Zalsa) -> impl Iterator<Item = DatabaseKeyIndex> + '_

Returns the IDs of any instances of this struct in the database.
Source§

fn cast(id: Id, type_id: TypeId) -> Option<Self>

Plumbing to support nested salsa supertypes. Read more
Source§

unsafe fn memo_table( zalsa: &Zalsa, id: Id, current_revision: Revision, ) -> MemoTableWithTypes<'_>

Return the memo table associated with id. Read more
Source§

impl SalsaValue for Package

Source§

impl StructuralPartialEq for Package

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> HashEqLike<&T> for T
where T: Hash + Eq,

Source§

fn hash<H>(&self, h: &mut H)
where H: Hasher,

Source§

fn eq(&self, data: &&T) -> bool

Source§

impl<T> HashEqLike<Cow<'_, T>> for T
where T: Hash + Eq + Clone,

Source§

fn hash<H>(&self, h: &mut H)
where H: Hasher,

Source§

fn eq(&self, data: &Cow<'_, T>) -> bool

Source§

impl<T> HashEqLike<T> for T
where T: Hash + Eq,

Source§

fn hash<H>(&self, h: &mut H)
where H: Hasher,

Source§

fn eq(&self, data: &T) -> bool

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Lookup<T> for T

Source§

fn into_owned(self) -> T

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more