pub struct ChartComposition {
pub panels: Vec<PanelSpec>,
pub splits: Vec<f32>,
/* private fields */
}Expand description
Chart panels and their cumulative height ratios.
Adding an auxiliary panel takes height from the primary; removing one returns its height to the primary. Surviving auxiliary panels retain their ratios, subject to minimum-height normalization. Reordering carries each panel’s ratio with it. Heights are proportional, not pixels.
New auxiliary panels receive up to 15%, reduced to an 8% minimum when space is limited. The primary must retain at least 8%.
Fields§
§panels: Vec<PanelSpec>§splits: Vec<f32>Normalized boundaries in ascending order, one fewer than panel count.
Implementations§
Source§impl ChartComposition
impl ChartComposition
pub fn comparison_layer(&self, ticker: TickerInfo) -> Option<&LayerSpec>
pub fn toggle_comparison_visibility(&mut self, ticker: TickerInfo) -> bool
pub fn prototype_kline() -> Self
pub fn from_parts(panels: Vec<PanelSpec>, splits: Vec<f32>) -> Option<Self>
pub fn panel_count(&self) -> usize
pub fn primary_panel_id(&self) -> Option<PanelId>
pub fn split_count(&self) -> usize
pub fn panel(&self, panel_id: PanelId) -> Option<&PanelSpec>
pub fn panel_effective_scale_mode( &self, panel_id: PanelId, ) -> Option<PanelScaleMode>
pub fn panel_effective_mark(&self, panel_id: PanelId) -> Option<MarkKind>
pub fn resolved_panel_marks( &self, panel_id: PanelId, ) -> Option<Vec<(LayerId, MarkKind)>>
pub fn panel_value_precision( &self, panel_id: PanelId, ) -> Option<PanelValuePrecision>
pub fn panel_value_label_policy( &self, panel_id: PanelId, ) -> Option<PanelValueLabelPolicy>
pub fn normalized_splits(&self, min_panel_ratio: f32) -> Vec<f32>
pub fn set_split( &mut self, split_index: usize, split: f32, min_panel_ratio: f32, ) -> bool
pub fn set_panel_preferred_scale( &mut self, panel_id: PanelId, scale: PanelScaleMode, ) -> bool
pub fn remove_panel(&mut self, panel_id: PanelId) -> bool
pub fn move_panel(&mut self, from_index: usize, to_index: usize) -> bool
pub fn sync_comparison_sources( &mut self, base_ticker: TickerInfo, selected_tickers: &[TickerInfo], )
pub fn copy_comparison_layers_from(&mut self, previous: &Self)
pub fn primary_uses_multi_source(&self) -> bool
pub fn restore_primary_scale_after_comparisons(&mut self) -> bool
pub fn selected_indicators(&self) -> Vec<IndicatorInstanceId>
pub fn add_indicator_on_source( &mut self, id: IndicatorInstanceId, indicator: IndicatorId, source: &IndicatorOutputRef, ) -> bool
pub fn primary_mark(&self) -> Option<MarkKind>
pub fn set_primary_mark(&mut self, mark: MarkKind) -> bool
pub fn reset_primary_mark(&mut self) -> bool
pub fn indicator_mark( &self, id: IndicatorInstanceId, kind: Option<&IndicatorId>, ) -> Option<MarkKind>
pub fn indicator_mark_target_layer_ids( &self, id: IndicatorInstanceId, kind: &IndicatorId, mark: MarkKind, ) -> Option<(PanelId, Vec<LayerId>)>
pub fn set_indicator_mark( &mut self, id: IndicatorInstanceId, mark: MarkKind, kind: Option<&IndicatorId>, ) -> bool
pub fn reset_indicator_mark(&mut self, id: IndicatorInstanceId) -> bool
pub fn toggle_indicator_visibility(&mut self, id: IndicatorInstanceId) -> bool
pub fn add_indicator( &mut self, id: IndicatorInstanceId, indicator: IndicatorId, ) -> bool
pub fn indicator_panel_id(&self, id: IndicatorInstanceId) -> Option<PanelId>
pub fn indicator_output_panel_id( &self, output: &IndicatorOutputRef, ) -> Option<PanelId>
pub fn reconcile_attached_indicator_placements( &mut self, instances: &IndicatorInstanceStore, ) -> bool
pub fn remove_indicator(&mut self, id: IndicatorInstanceId) -> bool
Trait Implementations§
Source§impl Clone for ChartComposition
impl Clone for ChartComposition
Auto Trait Implementations§
impl Freeze for ChartComposition
impl RefUnwindSafe for ChartComposition
impl Send for ChartComposition
impl Sync for ChartComposition
impl Unpin for ChartComposition
impl UnsafeUnpin for ChartComposition
impl UnwindSafe for ChartComposition
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Convert the source color to the destination color using the specified
method.
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Convert the source color to the destination color using the bradford
method by default.
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Cast a collection of colors into a collection of arrays.
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Cast this collection of arrays into a collection of colors.
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
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self into C, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Cast a collection of colors into a collection of color components.
Source§impl<T, C> ComponentsInto<C> for T
impl<T, C> ComponentsInto<C> for T
Source§fn components_into(self) -> C
fn components_into(self) -> C
Cast this collection of color components into a collection of colors. Read more
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
Performs a conversion from
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
Converts
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
Performs a conversion into
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Convert into T with values clamped to the color defined bounds Read more
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Convert into T. The resulting color might be invalid in its color space Read more
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> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
Converts
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
The error for when
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Try to cast this collection of color components into a collection of
colors. Read more
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
Convert into T, returning ok if the color is inside of its defined
range, otherwise an
OutOfBounds error is returned which contains
the unclamped color. Read moreSource§impl<C, U> UintsFrom<C> for Uwhere
C: IntoUints<U>,
impl<C, U> UintsFrom<C> for Uwhere
C: IntoUints<U>,
Source§fn uints_from(colors: C) -> U
fn uints_from(colors: C) -> U
Cast a collection of colors into a collection of unsigned integers.
Source§impl<C, U> UintsInto<C> for Uwhere
C: FromUints<U>,
impl<C, U> UintsInto<C> for Uwhere
C: FromUints<U>,
Source§fn uints_into(self) -> C
fn uints_into(self) -> C
Cast this collection of unsigned integers into a collection of colors.