pub enum SourceDialect {
Nix,
Tlisp,
Mixed,
}Expand description
Which surface dialect a parsed AstGraph came from. The IR
itself is dialect-agnostic — this discriminator anchors the
bidirectional render pipeline + lets transformation passes preserve
(or change) the source dialect.
Sui’s stance: both dialects produce the same typed IR. The downstream pipeline (eval cache, derivation builder, module-graph compiler, daemon hot cache) never branches on dialect. Only the surface (parse + render) cares.
Variants§
Nix
.nix source via the rnix parser. Production today.
Tlisp
.tlisp source via the tatara-lisp parser. Queued — the
parser + lowering exist as a typed seam (see
AstGraph::from_tlisp_source) but the full lowering of every
AstNodeKind variant is a focused follow-up ship.
Mixed
A graph stitched together from BOTH dialects (e.g. a .nix
flake importing a .tlisp module, or a .tlisp overlay
transforming a .nix config). Rendering this requires keeping
per-node provenance — AstNodeForm gains an optional
dialect_origin field in a later ship.
Trait Implementations§
Source§impl Archive for SourceDialect
impl Archive for SourceDialect
Source§type Archived = ArchivedSourceDialect
type Archived = ArchivedSourceDialect
Source§type Resolver = SourceDialectResolver
type Resolver = SourceDialectResolver
Source§fn resolve(
&self,
resolver: <Self as Archive>::Resolver,
out: Place<<Self as Archive>::Archived>,
)
fn resolve( &self, resolver: <Self as Archive>::Resolver, out: Place<<Self as Archive>::Archived>, )
Source§const COPY_OPTIMIZATION: CopyOptimization<Self> = _
const COPY_OPTIMIZATION: CopyOptimization<Self> = _
serialize. Read moreSource§impl Clone for SourceDialect
impl Clone for SourceDialect
Source§fn clone(&self) -> SourceDialect
fn clone(&self) -> SourceDialect
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SourceDialect
Source§impl Debug for SourceDialect
impl Debug for SourceDialect
Source§impl<'de> Deserialize<'de> for SourceDialect
impl<'de> Deserialize<'de> for SourceDialect
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl<__D: Fallible + ?Sized> Deserialize<SourceDialect, __D> for Archived<SourceDialect>
impl<__D: Fallible + ?Sized> Deserialize<SourceDialect, __D> for Archived<SourceDialect>
Source§fn deserialize(
&self,
deserializer: &mut __D,
) -> Result<SourceDialect, <__D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut __D, ) -> Result<SourceDialect, <__D as Fallible>::Error>
impl Eq for SourceDialect
Source§impl Hash for SourceDialect
impl Hash for SourceDialect
Source§impl PartialEq for SourceDialect
impl PartialEq for SourceDialect
Source§fn eq(&self, other: &SourceDialect) -> bool
fn eq(&self, other: &SourceDialect) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for SourceDialect
impl Serialize for SourceDialect
impl StructuralPartialEq for SourceDialect
Auto Trait Implementations§
impl Freeze for SourceDialect
impl RefUnwindSafe for SourceDialect
impl Send for SourceDialect
impl Sync for SourceDialect
impl Unpin for SourceDialect
impl UnsafeUnpin for SourceDialect
impl UnwindSafe for SourceDialect
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> ArchiveUnsized for Twhere
T: Archive,
impl<T> ArchiveUnsized for Twhere
T: Archive,
Source§type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
Archive, it may be
unsized. Read moreSource§fn archived_metadata(
&self,
) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
fn archived_metadata( &self, ) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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§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.