Skip to main content

MarkdownFile

Struct MarkdownFile 

Source
pub struct MarkdownFile<'src, const MAX_INLINE_DEPTH: u8 = 16, const INLINE_STACK_CAP: usize = 32> {
    pub sections: Vec<Section<'src>>,
    /* private fields */
}
Expand description

A parsed Markdown document.

Contains the block-level Sections and the internal pools that store Inline elements. Use inlines and item_spans to access inline content referenced by sections.

The const generics MAX_INLINE_DEPTH and INLINE_STACK_CAP control recursion depth and stack-allocation size for emphasis parsing. The defaults (16 and 32) are suitable for virtually all real-world input.

Fields§

§sections: Vec<Section<'src>>

The block-level sections of the document, in order.

Implementations§

Source§

impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

Source

pub fn parse(input: &'src str) -> Self

Source§

impl MarkdownFile<'_, 16, 32>

On the default MarkdownFile (depth=16, cap=32) we expose normalize as an associated fn so callers don’t need to import a free function.

Source

pub fn normalize(input: &str) -> Cow<'_, str>

Normalize line endings for parsing. Converts \r\n to \n and bare \r (classic Mac) to \n. Returns the input borrowed if no carriage returns are found (zero cost).

Call this before MarkdownFile::parse when input may contain CRLF:

let input = "# Hello\r\nWorld";
let normalized = marki_parse::MarkdownFile::normalize(input);
let md: marki_parse::MarkdownFile<'_> = marki_parse::MarkdownFile::parse(&normalized);
Source§

impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

Source

pub fn inlines(&self, span: InlineSpan) -> &[Inline<'src>]

Get the inline elements referenced by a span.

Source

pub fn item_spans(&self, slice: SpanSlice) -> &[InlineSpan]

Get the item spans referenced by a SpanSlice (list items).

Trait Implementations§

Source§

impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Clone for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

Source§

fn clone(&self) -> MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

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<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Debug for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

Source§

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

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

impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Eq for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

Source§

impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Index<InlineSpan> for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

Source§

type Output = [Inline<'src>]

The returned type after indexing.
Source§

fn index(&self, span: InlineSpan) -> &[Inline<'src>]

Performs the indexing (container[index]) operation. Read more
Source§

impl<const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Index<SpanSlice> for MarkdownFile<'_, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

Source§

type Output = [InlineSpan]

The returned type after indexing.
Source§

fn index(&self, slice: SpanSlice) -> &[InlineSpan]

Performs the indexing (container[index]) operation. Read more
Source§

impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> PartialEq for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

Source§

fn eq( &self, other: &MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>, ) -> 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<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> StructuralPartialEq for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

Auto Trait Implementations§

§

impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Freeze for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

§

impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> RefUnwindSafe for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

§

impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Send for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

§

impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Sync for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

§

impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Unpin for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

§

impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> UnsafeUnpin for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

§

impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> UnwindSafe for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>

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, 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.