FileSelectConfig

Struct FileSelectConfig 

Source
pub struct FileSelectConfig {
    pub config_number: u8,
    pub call: String,
    pub display: String,
    pub tooltip: Option<String>,
    pub group: Option<String>,
    pub must_exist: bool,
    pub file_extension_filter: Option<String>,
}
Expand description

Lets the user provide a file path.

Typically, these configs are created in a lazy_static, and passed to ConfigStep::list_configs.

§Example

use r_extcap::config::*;

let config = FileSelectConfig::builder()
    .config_number(3)
    .call("logfile")
    .display("Logfile")
    .tooltip("A file for log messages")
    .must_exist(false)
    .build();
assert_eq!(
    format!("{}", ExtcapFormatter(&config)),
    "arg {number=3}{call=--logfile}{display=Logfile}{tooltip=A file for log messages}{type=fileselect}{mustexist=false}\n"
);

Fields§

§config_number: u8

The config number, a unique identifier for this config.

§call: String

The command line option that will be sent to this extcap program. For example, if this field is foobar, and the corresponding value is 42, then --foobar 42 will be sent to this program during the extcap capture.

§display: String

The user-friendly label for the file selector.

§tooltip: Option<String>

The tooltip shown on when hovering over the UI element.

§group: Option<String>

The (user-visible) name of the tab which this config belongs to. If this is None, the config will be placed in a tab called “Default”.

§must_exist: bool

If true is provided, the GUI shows the user a dialog for selecting an existing file. If false, the GUI shows a file dialog for saving a file.

§file_extension_filter: Option<String>

If set, provide a filter for the file extension selectable by this config. The format of the filter string is the same as qt’s QFileDialog.

For example, the filter Text files (*.txt);;XML files (*.xml) will limit to .txt and .xml files:

If None, any file can be selected (equivalent to All Files (*)).

This feature is currnetly not documented in the Wireshark docs, but a high level detail can be found in this commit: https://gitlab.com/wireshark/wireshark/-/commit/0d47113ddc53714ecd6d3c1b58b694321649d89e

Implementations§

Source§

impl FileSelectConfig

Source

pub fn builder() -> FileSelectConfigBuilder<((), (), (), (), (), (), ())>

Create a builder for building FileSelectConfig. On the builder, call .config_number(...), .call(...), .display(...), .tooltip(...)(optional), .group(...)(optional), .must_exist(...)(optional), .file_extension_filter(...)(optional) to set the values of the fields. Finally, call .build() to create the instance of FileSelectConfig.

Trait Implementations§

Source§

impl ConfigTrait for FileSelectConfig

Source§

fn call(&self) -> &str

The command line option that will be sent to this extcap program. For example, if this field is foobar, and the corresponding value is 42, then --foobar 42 will be sent to this program during the extcap capture.
Source§

fn as_any(&self) -> &dyn Any

Returns this trait as an Any type.
Source§

impl Debug for FileSelectConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PrintSentence for FileSelectConfig

Source§

fn format_sentence(&self, f: &mut Formatter<'_>) -> Result

The extcap interface expects certain output “sentences” to stdout to communicate with Wireshark, like Read more
Source§

fn print_sentence(&self)

Prints the extcap sentence to stdout.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.