Skip to main content

SourceContext

Struct SourceContext 

Source
pub struct SourceContext { /* private fields */ }
Expand description

Context for managing source files

Implementations§

Source§

impl SourceContext

Source

pub fn new() -> Self

Create a new empty source context

Source

pub fn add_file(&mut self, path: String, content: Option<String>) -> FileId

Add a file to the context and return its ID

  • If content is Some: Creates an ephemeral (in-memory) file. Content is stored and used for ariadne rendering.
  • If content is None: Creates a disk-backed file. Content will be read from disk when needed (path must exist).

For ephemeral files, FileInformation is created immediately from the provided content. For disk-backed files, FileInformation is created by reading from disk if the path exists.

Source

pub fn add_file_with_info( &mut self, path: String, file_info: FileInformation, ) -> FileId

Add a file with pre-computed FileInformation

This is useful when deserializing from formats (like JSON) that include serialized FileInformation, avoiding the need to recompute line breaks or read from disk.

The file is created without content (content=None), so ariadne rendering won’t work, but map_offset() will work using the provided FileInformation.

Source

pub fn add_file_with_id( &mut self, id: FileId, path: String, content: Option<String>, ) -> FileId

Add a file with a specific FileId

This is useful when interfacing with systems that use hash-based or non-sequential FileIds (like quarto-yaml). The FileId must not already exist in the context.

§Panics

Panics if the FileId already exists in the context.

Source

pub fn get_file(&self, id: FileId) -> Option<&SourceFile>

Get a file by ID

Source

pub fn without_content(&self) -> Self

Create a copy without FileInformation (for serialization)

Note: This preserves the content field for ephemeral files, as they need content to be serialized for proper deserialization. Only FileInformation is removed since it can be reconstructed from content.

Trait Implementations§

Source§

impl Clone for SourceContext

Source§

fn clone(&self) -> SourceContext

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 Debug for SourceContext

Source§

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

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

impl Default for SourceContext

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for SourceContext

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for SourceContext

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

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<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> 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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.