Struct Builder

Source
pub struct Builder<T> { /* private fields */ }

Implementations§

Source§

impl Builder<AsyncStdStream>

Source

pub async fn connect<A: ToSocketAddrs>( self, address: A, password: &str, ) -> Result<Connection<AsyncStdStream>>

Available on crate feature rt-async-std only.

Connect to an rcon server using the async-std runtime.

Source§

impl Builder<TcpStream>

Source

pub async fn connect<A: ToSocketAddrs>( self, address: A, password: &str, ) -> Result<Connection<TcpStream>>

Available on crate feature rt-tokio only.

Connect to an rcon server using the Tokio runtime.

Source§

impl<T> Builder<T>

Source

pub fn new() -> Self

Source

pub fn enable_minecraft_quirks(self, value: bool) -> Self

This enables the following quirks for Minecraft:

Commands are delayed by 3ms to reduce the chance of crashing the server. See https://bugs.mojang.com/browse/MC-72390.

The command length is limited to 1413 bytes. Tests have shown the server to not work reliably with greater command lengths.

Source

pub fn enable_factorio_quirks(self, value: bool) -> Self

This enables the following quirks for Factorio:

Only single-packet responses are enabled. Multi-packets appear to work differently than in other server implementations (an empty packet gives no response).

Source

pub fn sleep_fn<F, Fut>(self, f: F) -> Self
where F: Fn(Duration) -> Fut + Send + Sync + 'static, Fut: Future<Output = ()> + Send + 'static,

Set a custom function to use for sleeping between requests when Minecraft quirks mode is enabled.

When either of the rt-tokio or rt-async-std feature flags is enabled, this library will default to using the runtime’s native sleeping function. This can be used to override it, or set the sleeping function to use when no runtime feature is active.

§Example

Using futures-timer instead of Tokio’s native timer:

let connection = <rcon::Connection<TcpStream>>::builder()
    .enable_minecraft_quirks(true)
    .sleep_fn(futures_timer::Delay::new)
    .connect("localhost:25575", "hunter2")
    .await?;
Source

pub async fn handshake(self, io: T, password: &str) -> Result<Connection<T>>
where T: AsyncRead + AsyncWrite + Unpin,

Perform a handshake on an existing connection to an rcon server.

This is a lower-level method mostly useful when integrating this crate with another runtime, or running rcon over a transport other than TCP. You generally will want to use one of the higher-level connect methods.

§Panics

If neither of the rt-tokio or rt-async-std feature flags are activated, no custom sleep function has been set and Minecraft quirks have been enabled, this function will panic as Minecraft quirks need some way to asynchronously sleep.

Trait Implementations§

Source§

impl<T> Clone for Builder<T>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: Debug> Debug for Builder<T>

Source§

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

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

impl<T> Default for Builder<T>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<T> Freeze for Builder<T>

§

impl<T> !RefUnwindSafe for Builder<T>

§

impl<T> Send for Builder<T>

§

impl<T> Sync for Builder<T>

§

impl<T> Unpin for Builder<T>

§

impl<T> !UnwindSafe for Builder<T>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<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