Struct parsoid::inclusion::OnlyInclude
source · pub struct OnlyInclude { /* private fields */ }
Expand description
Represents a onlyinclude tag (<onlyinclude>
)
This tag is special as it spans multiple nodes, similar to templates. However, because of the way wikitext is written, it’s possible for onlyinclude tags to be unbalanced, crossing normal HTML tags.
There are a few gotchas to using this because of how the contents
are tracked. You can only go through the descendant nodes using
inclusive_descendants
. It’s not possible to use a tree structure
because there’s no guarantee the contents are balanced HTML nodes.
Mutating nodes inside the onlyinclude is straightforward, but trying to change the tag itself is complicated. Trying to detach and reattach the same OnlyInclude instance probably won’t work as expected. Instead it’s recommended to only attach OnlyInclude instances that you create.
let code = client.transform_to_html("foo<onlyinclude>bar</onlyinclude>baz").await?.into_mutable();
// Get the `OnlyInclude` instance
let onlyinclude = code.filter_onlyinclude()[0].clone();
assert_eq!(&onlyinclude.inclusive_descendants()[0].text_contents(), "bar");
See the spec for more details.
Implementations§
source§impl OnlyInclude
impl OnlyInclude
Trait Implementations§
source§impl Clone for OnlyInclude
impl Clone for OnlyInclude
source§fn clone(&self) -> OnlyInclude
fn clone(&self) -> OnlyInclude
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for OnlyInclude
impl Debug for OnlyInclude
source§impl WikiMultinode for OnlyInclude
impl WikiMultinode for OnlyInclude
Auto Trait Implementations§
impl Freeze for OnlyInclude
impl !RefUnwindSafe for OnlyInclude
impl !Send for OnlyInclude
impl !Sync for OnlyInclude
impl Unpin for OnlyInclude
impl !UnwindSafe for OnlyInclude
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)