Skip to main content

TrailingNewline

Enum TrailingNewline 

Source
pub enum TrailingNewline {
    Preserve,
    Strip,
    Ensure,
}
Expand description

Trailing-newline policy applied at the document boundary.

Preserve (the default) matches the source’s trailing-newline shape: if the source ends with one or more \n bytes, the formatted output ends with exactly one \n; if the source has no trailing \n, the output has none either. This is what formatter validation needs to hold: pulldown-cmark’s HTML render of \t\x10 is <pre><code>\x10</code></pre> while its render of \t\x10\n is <pre><code>\x10\n</code></pre>; the trailing LF lives inside the code body for any document ending in an indented code block. An unconditional “ensure trailing \n” post-pass cannot avoid that class of HTML-divergence; Preserve avoids it by construction.

Strip drops every trailing \n. Ensure forces exactly one trailing \n (the pre-Preserve trailing_newline = true behaviour); kept under an explicit name so callers opt in to the foot-gun rather than getting it by default.

Variants§

§

Preserve

Match the source: one trailing \n iff the source had any.

§

Strip

Drop every trailing \n.

§

Ensure

Force exactly one trailing \n, appending if absent.

Trait Implementations§

Source§

impl Clone for TrailingNewline

Source§

fn clone(&self) -> TrailingNewline

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 TrailingNewline

Source§

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

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

impl Default for TrailingNewline

Source§

fn default() -> TrailingNewline

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

impl PartialEq for TrailingNewline

Source§

fn eq(&self, other: &TrailingNewline) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for TrailingNewline

Source§

impl Eq for TrailingNewline

Source§

impl StructuralPartialEq for TrailingNewline

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more