pub struct SourceFile {
pub doc: Option<DocBlock>,
pub name: QualifiedName,
pub statements: StatementList,
pub source: String,
pub hash: u64,
/* private fields */
}Expand description
µcad source file
Fields§
§doc: Option<DocBlock>Documentation.
name: QualifiedNameQualified name of the file if loaded from externals
statements: StatementListRoot code body.
source: StringSource file string, TODO: might be a &’a str in the future
hash: u64Hash 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(
name: Option<&str>,
path: impl AsRef<Path>,
source_str: &str,
) -> ParseResult<Rc<Self>>
pub fn load_from_str( name: Option<&str>, path: impl AsRef<Path>, source_str: &str, ) -> ParseResult<Rc<Self>>
Create SourceFile from string
The hash of the result will be of crate::from_str!().
Sourcepub fn name_from_path(path: impl AsRef<Path>) -> QualifiedName
pub fn name_from_path(path: impl AsRef<Path>) -> QualifiedName
Get the source file name from path.
Source§impl SourceFile
impl SourceFile
Sourcepub fn symbolize(
&self,
visibility: Visibility,
context: &mut ResolveContext,
) -> ResolveResult<Symbol>
pub fn symbolize( &self, visibility: Visibility, context: &mut ResolveContext, ) -> ResolveResult<Symbol>
Create symbol from definition.
Source§impl SourceFile
impl SourceFile
Sourcepub fn new(
doc: Option<DocBlock>,
statements: StatementList,
source: String,
hash: u64,
) -> Self
pub fn new( doc: Option<DocBlock>, statements: StatementList, source: String, hash: u64, ) -> Self
Create new source file from existing source.
Sourcepub fn set_filename(&mut self, path: impl AsRef<Path>)
pub fn set_filename(&mut self, path: impl AsRef<Path>)
Return filename of loaded file or <no file>
Sourcepub fn filename_as_str(&self) -> &str
pub fn filename_as_str(&self) -> &str
Return filename of loaded file or <no file>
Sourcepub fn id(&self) -> Identifier
pub fn id(&self) -> Identifier
Return the module name from the file name
Sourcepub fn get_line(&self, line: usize) -> Option<&str>
pub fn get_line(&self, line: usize) -> Option<&str>
get a specific line
line: line number beginning at0
Sourcepub fn get_code(&self, src_ref: &SrcRef) -> &str
pub fn get_code(&self, src_ref: &SrcRef) -> &str
get a specific line
line: line number beginning at0
Sourcepub fn set_name(&mut self, name: QualifiedName)
pub fn set_name(&mut self, name: QualifiedName)
Set file name.
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
Source§fn tree_print(&self, f: &mut Formatter<'_>, depth: TreeState) -> Result
fn tree_print(&self, f: &mut Formatter<'_>, depth: TreeState) -> Result
Write item into
f and use {:depth$} syntax in front of your single line
output to get proper indention.Source§fn display_tree(&self, f: &mut Formatter<'_>) -> Result
fn display_tree(&self, f: &mut Formatter<'_>) -> Result
Display as tree starting at depth
0.Source§fn debug_tree(&self, f: &mut Formatter<'_>) -> Result
fn debug_tree(&self, f: &mut Formatter<'_>) -> Result
Display as tree starting at given depth in debug mode
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