pub enum HelpTopicBody {
Static(&'static str),
Owned(String),
Compressed {
packed: &'static [u8],
raw_len: usize,
cache: OnceLock<String>,
},
Dynamic(Box<dyn Fn() -> String + Send + Sync>),
}Expand description
Where a topic’s body comes from.
Static— a compile-time&'static str. Used by tests and by any caller registering a topic from a string it already holds.Owned— runtime markdown the registry owns. What a plugin’s pages land as (CR.3): the body crossed the WASM boundary as an ownedStringand there is no'staticto borrow from. Chosen over leaking the string — a leak would survive unload, and a plugin reloaded repeatedly would accumulate a copy of its manual each time.Compressed— deflate-compressed markdown embedded at build time. Every builtin topic is one of these. Decompressed on first render and cached, so a session that never opens:helpnever decompresses anything and the second open of a topic is free.Dynamic— a closure invoked on every open (the seam for LSP / introspection). NOT what plugin pages use: it re-invokes on every open, and a help plugin’s guest is dropped once its bodies are across.
Variants§
Static(&'static str)
Owned(String)
Compressed
Fields
§
cache: OnceLock<String>Decompressed body, filled on first HelpTopicBody::render.
Dynamic(Box<dyn Fn() -> String + Send + Sync>)
Implementations§
Auto Trait Implementations§
impl !Freeze for HelpTopicBody
impl !RefUnwindSafe for HelpTopicBody
impl !UnwindSafe for HelpTopicBody
impl Send for HelpTopicBody
impl Sync for HelpTopicBody
impl Unpin for HelpTopicBody
impl UnsafeUnpin for HelpTopicBody
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoMaybeUndefined<T> for T
impl<T> IntoMaybeUndefined<T> for T
§fn into_maybe_undefined(self) -> MaybeUndefined<T>
fn into_maybe_undefined(self) -> MaybeUndefined<T>
Converts this value into a three-state builder argument.
§impl<T> IntoOption<T> for T
impl<T> IntoOption<T> for T
§fn into_option(self) -> Option<T>
fn into_option(self) -> Option<T>
Converts this value into an optional builder argument.