pub struct ViolinView {
pub title: String,
pub groups: Vec<(String, Vec<f64>)>,
pub bins: usize,
pub state: ViolinState,
}Expand description
A violin plot: named groups of raw samples.
Fields§
§title: String§groups: Vec<(String, Vec<f64>)>§bins: usizeKDE resolution (grid points per group).
state: ViolinStateObservable interaction state (FC-3).
Implementations§
Trait Implementations§
Source§impl CopySource for ViolinView
impl CopySource for ViolinView
Source§fn copy_kinds(&self) -> &[ClipKind]
fn copy_kinds(&self) -> &[ClipKind]
The kinds this source can offer, richest first.
Source§fn copy_payload(&self) -> Option<ClipPayload>
fn copy_payload(&self) -> Option<ClipPayload>
Produce the payload for the current selection (richest representation).
Source§impl Elm for ViolinView
impl Elm for ViolinView
Source§type Model = ViolinState
type Model = ViolinState
All observable state, in one serializable struct (FC-1 / FC-3).
Source§type Msg = ViolinMsg
type Msg = ViolinMsg
Every input the component accepts (FC-2). The only legal way to mutate
the
Model.Source§type Effect = ViolinEffect
type Effect = ViolinEffect
Side work as data (FC-8). Use
enum Effect {} when the component does no I/O.Source§fn title(&self) -> &str
fn title(&self) -> &str
The deck keys facets off this (mirrors
Facet::title).Source§fn state(&self) -> &ViolinState
fn state(&self) -> &ViolinState
FC-3 — read the complete observable state at any frame boundary.
Source§impl Facet for ViolinView
impl Facet for ViolinView
Source§fn component(&self) -> &'static str
fn component(&self) -> &'static str
The pane’s DEV-ID, derived with zero per-pane code: module_path!()
expands at the CALL site, so a bridged pane in facett-geomap reports
facett_geomap, which devid::normalize maps
to the registry component geomap. Override in the extras block to say
something else.
Source§fn ui(&mut self, ui: &mut Ui)
fn ui(&mut self, ui: &mut Ui)
FC-9: the view is pure (paints + emits Msgs); FC-2: mutation only
via update. The immediate-mode trait just bridges the two.
fn title(&self) -> &str
Source§fn copy(&mut self) -> Option<String>
fn copy(&mut self) -> Option<String>
Clipboard hooks — see clipboard.rs. Defaults: nothing to give/take.
Returns the text to place on the clipboard (None = nothing copyable now).
fn state_json(&self) -> Value
Source§fn update_json(&mut self, _msg_json: &str)
fn update_json(&mut self, _msg_json: &str)
The Elm mutation path — apply one message (JSON). This is the fourth
member of the component contract (
title/ui/state_json/update_json),
and it is defaulted to a no-op so it is purely ADDITIVE: every existing
impl Facet keeps compiling unchanged, while a facet that wants the writable
input surface overrides it (an Elm-backed facet routes the JSON through its
update). With this default in place Facet and Panel
share the same four-method shape, which is what lets the blanket
impl<T: Facet> Panel for T (see panel) make every
Facet a Panel for free. Unknown/undriven messages are ignored — the
default simply does nothing.fn severity(&self) -> Severity
Source§fn set_scale(&mut self, _scale: f32)
fn set_scale(&mut self, _scale: f32)
Set the uniform scale; clamp internally. Default no-op (not scalable).
Source§fn scale_range(&self) -> (f32, f32)
fn scale_range(&self) -> (f32, f32)
The band
[min, max], relative to native (1.0), that this facet’s uniform
scale may be driven over. FacetDeck::scale_active clamps into it. Read moreSource§fn selection_json(&self) -> Value
fn selection_json(&self) -> Value
The current selection as JSON (also folded into
state_json by
convention). Null when nothing/none selectable.Source§fn cut(&mut self) -> Option<String>
fn cut(&mut self) -> Option<String>
Like
copy, but also removes the selection. Default delegates to copy.Source§fn as_any_mut(&mut self) -> Option<&mut (dyn Any + 'static)>
fn as_any_mut(&mut self) -> Option<&mut (dyn Any + 'static)>
Optional downcast handle for hosts that need typed access to a specific
facet living inside a
FacetDeck (e.g. a robot-UI driver clicking an
app-level control that must forward to a concrete component’s own API).
Defaulted to None so no existing facet has to change; a component opts in
by returning Some(self).Source§fn kind(&self) -> &'static str
fn kind(&self) -> &'static str
Stable component-type id (e.g.
"jobview", "graphpan", "table"). Two
instances with the same kind can exchange portable state; the empty
default "" means opted out of cross-instance clone.Source§fn portable_state(&self) -> Option<Value>
fn portable_state(&self) -> Option<Value>
The portable subset of this facet’s state — the fields a same-kind
sibling can adopt.
None = not cloneable. Kept SEPARATE from
state_json (the introspection dump, which may carry
derived / render-only data) so this stays round-trippable through
load_state.Source§fn load_state(&mut self, _state: &Value) -> bool
fn load_state(&mut self, _state: &Value) -> bool
Adopt a portable state produced by
portable_state
on a same-kind sibling. Returns true if accepted. Default false
(opt-in per component).Auto Trait Implementations§
impl Forget for ViolinView
impl Freeze for ViolinView
impl RefUnwindSafe for ViolinView
impl Send for ViolinView
impl Sync for ViolinView
impl Unpin for ViolinView
impl UnsafeUnpin for ViolinView
impl UnwindSafe for ViolinView
Blanket Implementations§
impl<T> Allocation for T
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
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 moreSource§impl<T> Panel for T
impl<T> Panel for T
Source§fn ui(&mut self, ui: &mut Ui)
fn ui(&mut self, ui: &mut Ui)
Paint into the live egui frame. Backends: native paints directly; the
native cross-host adapter forwards to the guest pane’s own
ui; the wasm
backend paints a decoded display-list; headless paints nothing.Source§fn state_json(&self) -> Value
fn state_json(&self) -> Value
FC-3 observable state — the common currency for tests + the web state-hook.
Source§fn update_json(&mut self, msg_json: &str)
fn update_json(&mut self, msg_json: &str)
The Elm mutation path — apply one message (JSON). Used by the headless
drive + robotui, and by the wasm/adapter backends to route host-side input.
Source§fn severity(&self) -> Severity
fn severity(&self) -> Severity
The pane’s STRUCTURAL severity — the RESOLVED Robot-UI error signal that
the headless robot reads through this seam (decision (a)). Mirrors
Facet::severity; the blanket impl below forwards
to it. Defaulted to [Severity::Info](crate::Severity::Info) so it is
purely ADDITIVE — no existing Panel backend has to change. The Robot-UI
HARD GATE fails on any driven pane that returns
Severity::Error.Source§fn component(&self) -> &'static str
fn component(&self) -> &'static str
The pane’s stable DEV-ID — mirrors
Facet::component;
the blanket impl below forwards to it. Defaulted to "" so it is purely
ADDITIVE — no existing Panel backend has to change.