Skip to main content

Source

Struct Source 

Source
pub(crate) struct Source<'a> {
    text: Option<Cow<'a, str>>,
    line_ending: LineEnding,
}
Expand description

The current source of a document and the line ending to write.

Fields§

§text: Option<Cow<'a, str>>§line_ending: LineEnding

Implementations§

Source§

impl<'a> Source<'a>

Source

pub(crate) fn read( current: Option<&'a [u8]>, spec: LineEndingSpec, partial: bool, ) -> Result<Self, DocumentError>

Decode current and resolve the line ending of spec.

The bytes are only read when they can matter, which is under partial ownership or to preserve their line ending. The text is only kept under partial ownership, with its line endings changed to LF.

§Errors

Returns an error for invalid UTF-8 and for a current source whose line endings cannot be resolved.

Source

pub(crate) fn text(&self) -> Option<&str>

The current text with LF line endings, when it is kept.

Source

pub(crate) fn write(&self, document: &impl Display) -> Vec<u8> ⓘ

Render document with the resolved line ending.

Trait Implementations§

Source§

impl<'a> Debug for Source<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Source<'a>

§

impl<'a> RefUnwindSafe for Source<'a>

§

impl<'a> Send for Source<'a>

§

impl<'a> Sync for Source<'a>

§

impl<'a> Unpin for Source<'a>

§

impl<'a> UnsafeUnpin for Source<'a>

§

impl<'a> UnwindSafe for Source<'a>

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> 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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.