Skip to main content

MarkdownReader

Struct MarkdownReader 

Source
pub struct MarkdownReader<'a> { /* private fields */ }
Expand description

A streaming Markdown reader that implements EventSource.

MarkdownReader parses Markdown using pulldown-cmark and emits DocSpec events one at a time. It handles the mapping from pulldown-cmark’s event model to DocSpec’s event model, including tracking inline formatting state.

§Example

use docspec_markdown_reader::{MarkdownReader, EventSource};

let mut reader = MarkdownReader::new("**bold** and *italic*");
while let Some(event) = reader.next_event()? {
    // Process events...
}

Implementations§

Source§

impl<'a> MarkdownReader<'a>

Source

pub fn new(markdown: &'a str) -> Self

Creates a new MarkdownReader from the given Markdown string.

The reader will emit StartDocument as its first event and EndDocument as its last event, with the parsed content events in between.

§Example
use docspec_markdown_reader::MarkdownReader;

let reader = MarkdownReader::new("# Hello World");

Trait Implementations§

Source§

impl EventSource for MarkdownReader<'_>

Source§

fn next_event(&mut self) -> Result<Option<Event>>

Returns the next event from the stream, or None if the stream has ended. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for MarkdownReader<'a>

§

impl<'a> RefUnwindSafe for MarkdownReader<'a>

§

impl<'a> Send for MarkdownReader<'a>

§

impl<'a> Sync for MarkdownReader<'a>

§

impl<'a> Unpin for MarkdownReader<'a>

§

impl<'a> UnsafeUnpin for MarkdownReader<'a>

§

impl<'a> UnwindSafe for MarkdownReader<'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 = 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.