pub struct PivotMeltModal {Show 19 fields
pub active: bool,
pub preview: ReshapePreview,
pub active_tab: PivotMeltTab,
pub focus: PivotMeltFocus,
pub available_columns: Vec<String>,
pub column_dtypes: HashMap<String, DataType>,
pub picker: Option<PickerState>,
pub attention: bool,
pub index_columns: Vec<String>,
pub pivot_column: Option<String>,
pub value_column: Option<String>,
pub aggregation: PivotAggregation,
pub melt_index_columns: Vec<String>,
pub melt_value_strategy: MeltValueStrategy,
pub melt_pattern_input: TextInput,
pub melt_type_filter: MeltTypeFilter,
pub melt_explicit_list: Vec<String>,
pub melt_variable_input: TextInput,
pub melt_value_input: TextInput,
/* private fields */
}Fields§
§active: bool§preview: ReshapePreviewThe live preview of the staged spec.
active_tab: PivotMeltTab§focus: PivotMeltFocus§available_columns: Vec<String>Column names from current schema. Set when opening modal.
column_dtypes: HashMap<String, DataType>Column name -> DataType. Set when opening.
picker: Option<PickerState>The one Picker, open for the focused row; None while the form has the keys.
attention: boolSet when Enter was pressed on an incomplete form: the spec line that names the gap re-accents instead of a modal repeating it. Any other key clears it.
index_columns: Vec<String>§pivot_column: Option<String>§value_column: Option<String>§aggregation: PivotAggregation§melt_index_columns: Vec<String>§melt_value_strategy: MeltValueStrategy§melt_pattern_input: TextInput§melt_type_filter: MeltTypeFilter§melt_explicit_list: Vec<String>§melt_variable_input: TextInput§melt_value_input: TextInputImplementations§
Source§impl PivotMeltModal
impl PivotMeltModal
pub fn new() -> Self
pub fn open(&mut self, history_limit: usize, theme: &Theme)
pub fn close(&mut self)
pub fn reset_form(&mut self)
Sourcepub fn row_order(&self) -> &'static [PivotMeltFocus]
pub fn row_order(&self) -> &'static [PivotMeltFocus]
The active tab’s rows, in Tab order. Melt’s value rows follow its strategy.
pub fn switch_tab(&mut self)
Sourcepub fn is_text_row(&self, focus: PivotMeltFocus) -> bool
pub fn is_text_row(&self, focus: PivotMeltFocus) -> bool
Rows whose value is a text field rather than a picked choice.
Sourcepub fn is_choice_row(&self, focus: PivotMeltFocus) -> bool
pub fn is_choice_row(&self, focus: PivotMeltFocus) -> bool
Rows whose value steps through a short list: the aggregation, the melt strategy and its type.
Sourcepub fn is_picker_row(&self, focus: PivotMeltFocus) -> bool
pub fn is_picker_row(&self, focus: PivotMeltFocus) -> bool
Rows edited through the Picker: the column rows.
Sourcepub fn step_choice(&mut self, delta: i8)
pub fn step_choice(&mut self, delta: i8)
←/→ (and Space) on a choice row: the next or previous value, wrapping. A new strategy changes which melt rows follow it.
Sourcepub fn step_picker_row(&mut self, delta: i8)
pub fn step_picker_row(&mut self, delta: i8)
←/→ on a pick-one column row: the next or previous column, chosen at once. A row with nothing chosen yet starts at the first (→) or the last (←).
Sourcepub fn is_multi_row(&self, focus: PivotMeltFocus) -> bool
pub fn is_multi_row(&self, focus: PivotMeltFocus) -> bool
Rows where the Picker toggles several choices rather than picking one.
Sourcepub fn focused_text_input_mut(&mut self) -> Option<&mut TextInput>
pub fn focused_text_input_mut(&mut self) -> Option<&mut TextInput>
The focused row’s text field, when it has one.
Sourcepub fn picker_items(&self) -> Vec<String>
pub fn picker_items(&self) -> Vec<String>
What the focused row’s Picker offers: each row sees only its own pool, so narrowing one list can never silently empty another.
Sourcepub fn open_picker(&mut self)
pub fn open_picker(&mut self)
Open the Picker for the focused row, cursor on the current choice.
Sourcepub fn picker_cancel(&mut self)
pub fn picker_cancel(&mut self)
Esc in the Picker: it closes, and the toggles made since it opened go with it (a pick-one row changed nothing yet).
Sourcepub fn picker_choose(&mut self)
pub fn picker_choose(&mut self)
Enter in the Picker: a pick-one row takes the cursor’s item; a toggle row’s choices are already staged. Either way the Picker closes.
Sourcepub fn picker_toggle(&mut self)
pub fn picker_toggle(&mut self)
Space in a toggle row’s Picker: flip the cursor’s column in or out.
Sourcepub fn is_marked(&self, item: &str) -> bool
pub fn is_marked(&self, item: &str) -> bool
Whether an item in the focused row’s Picker is currently chosen.
Sourcepub fn pivot_spec_line(&self, g: &Glyphs) -> Result<String, String>
pub fn pivot_spec_line(&self, g: &Glyphs) -> Result<String, String>
The staged pivot as one line — index × columns → agg(values) — or
what is still missing from it.
Sourcepub fn melt_spec_line(&self) -> Result<String, String>
pub fn melt_spec_line(&self) -> Result<String, String>
The staged melt as one line, or what is still missing from it.
pub fn pivot_validation_error(&self) -> Option<String>
pub fn build_pivot_spec(&self) -> Option<PivotSpec>
pub fn melt_value_pool(&self) -> Vec<String>
pub fn melt_resolve_value_columns(&self) -> Result<Vec<String>, String>
pub fn melt_validation_error(&self) -> Option<String>
pub fn build_melt_spec(&self) -> Option<MeltSpec>
Sourcepub fn staged_spec(&self) -> Option<PreviewSpec>
pub fn staged_spec(&self) -> Option<PreviewSpec>
The spec Enter would apply on the active tab, if it is complete.
Trait Implementations§
Source§impl Default for PivotMeltModal
impl Default for PivotMeltModal
Source§impl Form for PivotMeltModal
impl Form for PivotMeltModal
Source§fn fields(&self) -> Vec<(PivotMeltFocus, FieldKind)>
fn fields(&self) -> Vec<(PivotMeltFocus, FieldKind)>
The tab bar, then the active tab’s rows. Melt’s value rows follow its strategy.
Source§type Field = PivotMeltFocus
type Field = PivotMeltFocus
fn focused(&self) -> PivotMeltFocus
Source§fn set_focused(&mut self, field: PivotMeltFocus)
fn set_focused(&mut self, field: PivotMeltFocus)
field. Called only with a field of Form::fields; a modal
that shows a text cursor in the focused field syncs it here.Source§fn text_edge(&self, _field: Self::Field) -> (bool, bool)
fn text_edge(&self, _field: Self::Field) -> (bool, bool)
Source§fn list_row(&self, _field: Self::Field) -> bool
fn list_row(&self, _field: Self::Field) -> bool
field is a row of a list (a sort, a filter, a column) rather than a
setting. A click on a list row only focuses it, so it can be picked to move or
remove without changing it; a click on it once focused acts. A setting (a
checkbox, a choice, a button) acts on the first click.Source§fn focused_kind(&self) -> Option<FieldKind>
fn focused_kind(&self) -> Option<FieldKind>
None when focus is on a field not shown.Source§fn focus(&mut self, field: Self::Field) -> bool
fn focus(&mut self, field: Self::Field) -> bool
field if the form shows it: a click on a row, or a modal moving
focus itself. Returns whether it did.Source§fn move_focus(&mut self, delta: isize)
fn move_focus(&mut self, delta: isize)
delta fields along, wrapping. A focus the form no longer shows
counts from the top.fn focus_next(&mut self)
fn focus_prev(&mut self)
Source§fn settle_focus(&mut self)
fn settle_focus(&mut self)
Auto Trait Implementations§
impl !Freeze for PivotMeltModal
impl !RefUnwindSafe for PivotMeltModal
impl !Sync for PivotMeltModal
impl !UnwindSafe for PivotMeltModal
impl Send for PivotMeltModal
impl Unpin for PivotMeltModal
impl UnsafeUnpin for PivotMeltModal
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.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> 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> ⓘ
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> ⓘ
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<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more