pub struct TreeNode {
pub text: TextPropertyEntry,
pub depth: u32,
pub has_children: bool,
pub checked: Option<bool>,
}Expand description
One node in a Tree widget’s flat-list spec. The plugin walks
its hierarchy depth-first and emits one TreeNode per node;
depth controls indent, has_children controls whether the
disclosure glyph (and its hit area) is rendered. The host filters
the visible window — descendants of collapsed nodes are skipped.
text is the pre-rendered row content. The host prepends the
indent + disclosure glyph at render time and shifts the entry’s
inline overlays accordingly; plugins emit text (and overlays)
in the row’s own coordinate space, starting at column 0.
Fields§
§text: TextPropertyEntryThe pre-rendered row content (text + per-row overlays). The host renders this verbatim after the indent + disclosure prefix; plugin overlays are byte-shifted by the prefix length.
depth: u320-based depth — controls leading indent (depth * 2 spaces).
has_children: boolWhen true, render a disclosure glyph (▶ collapsed / ▼
expanded) and emit a hit area over it that fires the expand
event. Leaf nodes (false) get no glyph and no expand hit;
the row width occupies the full row.
checked: Option<bool>Per-node checkbox state. Only rendered when the parent
Tree has checkable: true. None = no checkbox glyph;
Some(true) = [v]; Some(false) = [ ]. The plugin
owns the truth — the host fires widget_event { event_type: "toggle" } and the plugin pushes the new state back via
WidgetMutation::SetCheckedKeys.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for TreeNode
impl<'de> Deserialize<'de> for TreeNode
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl TS for TreeNode
impl TS for TreeNode
Source§type WithoutGenerics = TreeNode
type WithoutGenerics = TreeNode
WithoutGenerics should just be Self.
If the type does have generic parameters, then all generic parameters must be replaced with
a dummy type, e.g ts_rs::Dummy or (). The only requirement for these dummy types is that
EXPORT_TO must be None. Read moreSource§type OptionInnerType = TreeNode
type OptionInnerType = TreeNode
std::option::Option<T>, then this associated type is set to T.
All other implementations of TS should set this type to Self instead.Source§fn docs() -> Option<String>
fn docs() -> Option<String>
TS is derived, docs are
automatically read from your doc comments or #[doc = ".."] attributesSource§fn decl_concrete(cfg: &Config) -> String
fn decl_concrete(cfg: &Config) -> String
TS::decl().
If this type is not generic, then this function is equivalent to TS::decl().Source§fn decl(cfg: &Config) -> String
fn decl(cfg: &Config) -> String
type User = { user_id: number, ... }.
This function will panic if the type has no declaration. Read moreSource§fn inline(cfg: &Config) -> String
fn inline(cfg: &Config) -> String
{ user_id: number }.
This function will panic if the type cannot be inlined.Source§fn inline_flattened(cfg: &Config) -> String
fn inline_flattened(cfg: &Config) -> String
Source§fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn output_path() -> Option<PathBuf>
fn output_path() -> Option<PathBuf>
T should be exported, relative to the output directory.
The returned path does not include any base directory. Read moreSource§fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
Source§fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export_all. Read moreSource§fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export. Read more