Skip to main content

RdNode

Enum RdNode 

Source
#[non_exhaustive]
pub enum RdNode { Text(String), RCode(String), Verb(String), Comment(String), Tagged(RdTagged), Group(RdGroup), Raw(RawRdNode), }
Expand description

A single node of an Rd document tree.

The design is mostly generic: four leaf kinds carry raw text, one variant (Tagged) represents every known markup macro uniformly via RdTag, and Raw is the lossless fallback for anything that doesn’t fit. See the crate-level documentation for why semantics (link targets, argument pairing, table rows) are intentionally left out of this enum.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Text(String)

A TEXT-tagged leaf: plain documentation text.

§

RCode(String)

An RCODE-tagged leaf: R source code, as found inside \usage, \examples, and similar code-valued sections/macros.

§

Verb(String)

A VERB-tagged leaf: verbatim text, as found inside \verb{...} and \preformatted{...}.

§

Comment(String)

A COMMENT-tagged leaf: a %-introduced Rd comment, preserved (including the leading %) rather than dropped, since parse_Rd(keep.source = TRUE) keeps them and a lossless AST must be able to represent whatever the producer handed it.

§

Tagged(RdTagged)

Any node carrying a known or unknown macro-style Rd_tag.

§

Group(RdGroup)

An untagged positional-argument group.

§

Raw(RawRdNode)

A lossless fallback for a node that doesn’t fit the shapes above: genuinely non-canonical structures such as nodes with unexpected attributes. Positional-argument groups use RdNode::Group.

Implementations§

Source§

impl RdNode

Source

pub fn tagged( tag: RdTag, option: Option<Vec<RdNode>>, children: Vec<RdNode>, ) -> Self

Source

pub fn group(children: Vec<RdNode>) -> Self

Source

pub fn as_tagged(&self) -> Option<&RdTagged>

Source

pub fn as_group(&self) -> Option<&RdGroup>

Source

pub fn as_raw(&self) -> Option<&RawRdNode>

Source

pub fn into_tagged(self) -> Result<RdTagged, Self>

Source

pub fn into_group(self) -> Result<RdGroup, Self>

Source

pub fn into_raw(self) -> Result<RawRdNode, Self>

Source§

impl RdNode

Source

pub fn conditional(&self, base_path: &RdPath) -> Option<RdConditional<'_>>

Source

pub fn inspect_conditional( &self, base_path: &RdPath, ) -> Result<Option<RdConditional<'_>>, RdShapeError>

Source§

impl RdNode

Source

pub fn enc(&self, base_path: &RdPath) -> Option<RdEnc<'_>>

Source

pub fn inspect_enc( &self, base_path: &RdPath, ) -> Result<Option<RdEnc<'_>>, RdShapeError>

Source§

impl RdNode

Source

pub fn example_control( &self, base_path: &RdPath, ) -> Option<RdExampleControl<'_>>

Lossily views a canonical example-control wrapper without an option.

Source

pub fn inspect_example_control( &self, base_path: &RdPath, ) -> Result<Option<RdExampleControl<'_>>, RdShapeError>

Strictly inspects a canonical example-control wrapper without changing or validating any of its direct children.

Source§

impl RdNode

Source

pub fn figure(&self, base_path: &RdPath) -> Option<RdFigure<'_>>

Source

pub fn inspect_figure( &self, base_path: &RdPath, ) -> Result<Option<RdFigure<'_>>, RdShapeError>

Source§

impl RdNode

Source

pub fn inline_span(&self, base_path: &RdPath) -> Option<RdInlineSpan<'_>>

Source

pub fn inspect_inline_span( &self, base_path: &RdPath, ) -> Result<Option<RdInlineSpan<'_>>, RdShapeError>

Source§

impl RdNode

Source

pub fn text_symbol(&self, base_path: &RdPath) -> Option<RdTextSymbol>

Source

pub fn inspect_text_symbol( &self, base_path: &RdPath, ) -> Result<Option<RdTextSymbol>, RdShapeError>

Source§

impl RdNode

Source§

impl RdNode

Source

pub fn method(&self, base_path: &RdPath) -> Option<RdMethod<'_>>

Source

pub fn inspect_method( &self, base_path: &RdPath, ) -> Result<Option<RdMethod<'_>>, RdShapeError>

Trait Implementations§

Source§

impl Clone for RdNode

Source§

fn clone(&self) -> RdNode

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 RdNode

Source§

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

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

impl<'de> Deserialize<'de> for RdNode

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 PartialEq for RdNode

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl Serialize for RdNode

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
Source§

impl StructuralPartialEq for RdNode

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.