pub struct Source {
pub kind: SourceKind,
pub origin: Option<String>,
pub content: String,
}Fieldsยง
ยงkind: SourceKindยงorigin: Option<String>ยงcontent: StringImplementationsยง
Sourceยงimpl Source
A source.
impl Source
A source.
A source is a reference to a piece of code.
Example:
use ara_source::source::Source;
use ara_source::source::SourceKind;
let source = Source::new(SourceKind::Script, "main.ara", "function main(): void {}");
assert_eq!(source.kind, SourceKind::Script);
assert_eq!(source.origin, Some("main.ara".to_string()));
assert_eq!(source.content, "function main(): void {}");
assert_eq!(source.name(), "main.ara");Sourcepub fn new<O: Into<String>, C: Into<String>>(
kind: SourceKind,
origin: O,
content: C,
) -> Source
pub fn new<O: Into<String>, C: Into<String>>( kind: SourceKind, origin: O, content: C, ) -> Source
Create a new source with the given content.
Example:
use ara_source::source::Source;
use ara_source::source::SourceKind;
let source = Source::inline(SourceKind::Definition, "function main(): void {}");
assert_eq!(source.kind, SourceKind::Definition);
assert_eq!(source.origin, None);
assert_eq!(source.content, "function main(): void {}");
assert_eq!(source.name(), "<unknown>");Sourcepub fn inline<C: Into<String>>(kind: SourceKind, content: C) -> Source
pub fn inline<C: Into<String>>(kind: SourceKind, content: C) -> Source
Create a new source with the given content.
Example:
use ara_source::source::Source;
use ara_source::source::SourceKind;
let source = Source::inline(SourceKind::Definition, "function main(): void {}");
assert_eq!(source.kind, SourceKind::Definition);
assert_eq!(source.origin, None);
assert_eq!(source.content, "function main(): void {}");Sourcepub fn name(&self) -> &str
pub fn name(&self) -> &str
Get the name of the source.
If the source has an origin, the origin is returned. Otherwise, the default name is returned.
Example:
use ara_source::source::Source;
use ara_source::source::SourceKind;
let source = Source::new(SourceKind::Definition, "main.ara", "function main(): void {}");
assert_eq!(source.name(), "main.ara");
let source = Source::inline(SourceKind::Definition, "function main(): void {}");
assert_eq!(source.name(), "<unknown>");Trait Implementationsยง
impl Eq for Source
impl StructuralPartialEq for Source
Auto Trait Implementationsยง
impl Freeze for Source
impl RefUnwindSafe for Source
impl Send for Source
impl Sync for Source
impl Unpin for Source
impl UnwindSafe for Source
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