StringConfig

Struct StringConfig 

Source
pub struct StringConfig {
    pub config_number: u8,
    pub call: String,
    pub display: String,
    pub tooltip: Option<String>,
    pub placeholder: Option<String>,
    pub required: bool,
    pub group: Option<String>,
    pub validation: Option<String>,
    pub save: bool,
}
Expand description

A field for entering a text value.

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

§Example

use r_extcap::config::*;

let config = StringConfig::builder()
    .config_number(1)
    .call("server")
    .display("IP Address")
    .tooltip("IP Address for log server")
    .validation(r"\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b")
    .build();
assert_eq!(
    format!("{}", ExtcapFormatter(&config)),
    concat!(
        r"arg {number=1}{call=--server}{display=IP Address}{tooltip=IP Address for log server}{validation=\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b}{type=string}",
        "\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 text field.

§tooltip: Option<String>

The tooltip shown on when hovering over the UI element.

§placeholder: Option<String>

The placeholder string displayed if there is no value in the text field.

§required: bool

Whether a value is required for this config.

§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”.

§validation: Option<String>

A regular expression string used to check the user input for validity. Despite what the Wireshark documentation says, back-slashes in this string do not need to be escaped. Just remember to use a Rust raw string (e.g. r"\d\d\d\d").

§save: bool

Whether to save the value of this config. If true, the value will be saved by Wireshark, and will be automatically populated next time that interface is selected by the user.

Note: This option is undocumented in the Wireshark documentation, but the functionality was added in https://gitlab.com/wireshark/wireshark/-/commit/97a1a50e200a6c50e0014dde7e8ec932c30190a1.

It does not behave correctly in some versions of Wireshark, with the same symptoms described in https://gitlab.com/wireshark/wireshark/-/issues/18487.

Implementations§

Source§

impl StringConfig

Source

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

Create a builder for building StringConfig. On the builder, call .config_number(...), .call(...), .display(...), .tooltip(...)(optional), .placeholder(...)(optional), .required(...)(optional), .group(...)(optional), .validation(...)(optional), .save(...)(optional) to set the values of the fields. Finally, call .build() to create the instance of StringConfig.

Trait Implementations§

Source§

impl ConfigTrait for StringConfig

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 StringConfig

Source§

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

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

impl PrintSentence for StringConfig

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.