pub struct ExportModal {Show 15 fields
pub active: bool,
pub focus: ExportFocus,
pub selected_format: ExportFormat,
pub path_input: TextInput,
pub csv_delimiter_input: TextInput,
pub csv_include_header: bool,
pub source_file: bool,
pub offer_source_file: bool,
pub nested_columns: bool,
pub avro_renames: bool,
pub csv_compression: Option<CompressionFormat>,
pub json_compression: Option<CompressionFormat>,
pub ndjson_compression: Option<CompressionFormat>,
pub history_limit: usize,
pub path_error: Option<String>,
}Fields§
§active: bool§focus: ExportFocus§selected_format: ExportFormat§path_input: TextInput§csv_delimiter_input: TextInput§csv_include_header: bool§source_file: boolAdd a column naming the file each row came from. See ExportFocus::SourceFile.
offer_source_file: boolWhether this dataset has files to name. Set when the modal opens.
nested_columns: boolWhether the view has list, array or struct columns, which a format without nesting writes as JSON; the dialog says so. Set when it opens.
avro_renames: boolWhether a column or struct field of the view has a name Avro does not allow; the dialog says those are renamed. Set when it opens.
csv_compression: Option<CompressionFormat>§json_compression: Option<CompressionFormat>§ndjson_compression: Option<CompressionFormat>§history_limit: usize§path_error: Option<String>Why the form cannot export, or why its last write failed, said inline on its own status line. Cleared by typing in the path.
Implementations§
Source§impl ExportModal
impl ExportModal
pub fn new() -> Self
pub fn open( &mut self, default_format: Option<ExportFormat>, history_limit: usize, theme: &Theme, file_delimiter: Option<u8>, )
pub fn close(&mut self)
Sourcepub fn suspend(&mut self)
pub fn suspend(&mut self)
Hide behind a child confirmation without discarding the form; resume
brings it back exactly as typed. close is the discard.
pub fn resume(&mut self)
Sourcepub fn sync_format_to_path(&mut self)
pub fn sync_format_to_path(&mut self)
Follow the typed path’s extension with the format picker, so out.csv never
silently receives Parquet bytes. An extension that names no format leaves the
picker alone, and an explicit format picked after typing stands, because this
runs only when the path itself changes.
Sourcepub fn suggest_path(&mut self, stem: &str)
pub fn suggest_path(&mut self, stem: &str)
The other direction of Self::sync_format_to_path: a format picked after
typing rewrites the path’s format extension, so out.csv never silently
receives Parquet bytes from the picker side either. A path whose extension
names no format is left alone. A compression suffix survives when the new
format supports one and is dropped when it cannot.
Offer stem with the format’s extension as the path: Enter takes it as it
stands, typing replaces it, and stepping the format carries it along.
pub fn sync_path_to_format(&mut self)
Sourcepub fn compression(&self) -> Option<CompressionFormat>
pub fn compression(&self) -> Option<CompressionFormat>
The compression the chosen format writes with; None for one that takes none.
Sourcepub fn step_compression(&mut self, delta: i8)
pub fn step_compression(&mut self, delta: i8)
Step the chosen format’s compression through COMPRESSION_OPTIONS.
Sourcepub fn step_format(&mut self, delta: i8)
pub fn step_format(&mut self, delta: i8)
Step the format, carrying the typed path’s extension with it.
Sourcepub fn focus_order(&self) -> Vec<ExportFocus>
pub fn focus_order(&self) -> Vec<ExportFocus>
The fields this modal offers, in the order Tab walks them.
Built as a list rather than a match per field: the options differ by format and one of them depends on the dataset, and a hand-written state machine over both has an arm for every pair.
Trait Implementations§
Source§impl Default for ExportModal
impl Default for ExportModal
Source§impl Form for ExportModal
impl Form for ExportModal
Source§type Field = ExportFocus
type Field = ExportFocus
Source§fn fields(&self) -> Vec<(ExportFocus, FieldKind)>
fn fields(&self) -> Vec<(ExportFocus, FieldKind)>
fn focused(&self) -> ExportFocus
Source§fn set_focused(&mut self, field: ExportFocus)
fn set_focused(&mut self, field: ExportFocus)
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 ExportModal
impl !RefUnwindSafe for ExportModal
impl !Sync for ExportModal
impl Send for ExportModal
impl Unpin for ExportModal
impl UnsafeUnpin for ExportModal
impl UnwindSafe for ExportModal
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