StateBuilder

Struct StateBuilder 

Source
pub struct StateBuilder {
    pub port: u16,
    pub directory: Option<PathBuf>,
    pub max_upload: usize,
    pub ip: IpAddr,
    /* private fields */
}
Expand description

Builder for server configuration

Fields§

§port: u16

The port which will be used to listen for connections.

§directory: Option<PathBuf>

The directory to store malware samples if we’re keeping them.

§max_upload: usize

Maximum upload size

§ip: IpAddr

The IP to use for listening for connections

Implementations§

Source§

impl StateBuilder

Source

pub async fn new(db_string: &str, pg_cert: Option<PathBuf>) -> Result<Self>

Create the builder starting with the database configuration, and optionally, the certificate for communicating with Postgres.

§Errors

An error occurs if the database configuration isn’t valid or if an error occurs connecting to the database.

Source

pub fn port(self, port: u16) -> Self

Specify the port to listen on. Default: 8080

Source

pub fn directory(self, directory: PathBuf) -> Self

Specify the directory to store malware samples if we’re keeping them.

Default: No directory, no file saving

Source

pub fn max_upload(self, max_upload: usize) -> Self

Specify the maximum upload size in bytes. Default is 100 MiB.

Source

pub fn ip(self, ip: IpAddr) -> Self

Indicate the IP address the server will list on. Default: 127.0.0.1

Source

pub fn vt_client(self, vt_client: VirusTotalClient) -> Self

Available on crate feature vt only.

Provide the Virus Total API key.

Source

pub async fn tls(self, cert_file: PathBuf, key_file: PathBuf) -> Result<Self>

Provide the certificate and private key for TLS mode. Files must match: both as PEM or both as DER.

§Errors

An error results if either file doesn’t exist, not in the same format, or cannot be parsed.

Source

pub fn enable_mdns(self) -> Self

Indicate that Malware DB should advertise itself via multicast DNS. Default is false.

Source

pub async fn into_state(self) -> Result<State>

Generate the state object.

§Errors

An error occurs if the database can’t be reached.

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more