pub struct SourceFile {
pub name: QualifiedName,
pub statements: StatementList,
pub filename: Option<PathBuf>,
pub source: String,
pub hash: u64,
}
Expand description
µcad source file
Fields§
§name: QualifiedName
Qualified name of the file if loaded from externals
statements: StatementList
Root code body.
filename: Option<PathBuf>
Name of loaded file.
source: String
Source file string, TODO: might be a &’a str in the future
hash: u64
Hash of the source file
This hash is calculated from the source code itself
This is used to map SrcRef
-> SourceFile
Implementations§
Source§impl SourceFile
impl SourceFile
Sourcepub fn load(path: impl AsRef<Path> + Debug) -> ParseResult<Rc<Self>>
pub fn load(path: impl AsRef<Path> + Debug) -> ParseResult<Rc<Self>>
Load µcad source file from given path
Sourcepub fn load_with_name(
path: impl AsRef<Path> + Debug,
name: QualifiedName,
) -> ParseResult<Rc<Self>>
pub fn load_with_name( path: impl AsRef<Path> + Debug, name: QualifiedName, ) -> ParseResult<Rc<Self>>
Load µcad source file from given path
Sourcepub fn load_from_str(s: &str) -> ParseResult<Rc<Self>>
pub fn load_from_str(s: &str) -> ParseResult<Rc<Self>>
Create SourceFile
from string
The hash of the result will be of crate::from_str!()
.
Source§impl SourceFile
impl SourceFile
Sourcepub fn resolve(&self) -> ResolveResult<Symbol>
pub fn resolve(&self) -> ResolveResult<Symbol>
Resolve into Symbol
Source§impl SourceFile
impl SourceFile
Trait Implementations§
Source§impl Clone for SourceFile
impl Clone for SourceFile
Source§fn clone(&self) -> SourceFile
fn clone(&self) -> SourceFile
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for SourceFile
impl Debug for SourceFile
Source§impl Default for SourceFile
impl Default for SourceFile
Source§fn default() -> SourceFile
fn default() -> SourceFile
Returns the “default value” for a type. Read more
Source§impl Display for SourceFile
impl Display for SourceFile
Source§impl Parse for SourceFile
impl Parse for SourceFile
fn parse(pair: Pair<'_>) -> ParseResult<Self>
Source§impl SrcReferrer for SourceFile
impl SrcReferrer for SourceFile
Source§impl TreeDisplay for SourceFile
impl TreeDisplay for SourceFile
Auto Trait Implementations§
impl Freeze for SourceFile
impl !RefUnwindSafe for SourceFile
impl !Send for SourceFile
impl !Sync for SourceFile
impl Unpin for SourceFile
impl !UnwindSafe for SourceFile
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<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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
Fallible version of
ToCompactString::to_compact_string()
Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
Converts the given value to a
CompactString
. Read more