Struct citadel_sdk::prelude::NodeBuilder
source · pub struct NodeBuilder { /* private fields */ }
Expand description
Used to construct a running client/peer or server instance
Implementations§
source§impl NodeBuilder
impl NodeBuilder
sourcepub fn build<'a, 'b: 'a, K: NetKernel + 'b>(
&'a mut self,
kernel: K,
) -> Result<NodeFuture<'b, K>>
pub fn build<'a, 'b: 'a, K: NetKernel + 'b>( &'a mut self, kernel: K, ) -> Result<NodeFuture<'b, K>>
Returns a future that represents the both the protocol and kernel execution
sourcepub fn with_node_type(&mut self, node_type: NodeType) -> &mut Self
pub fn with_node_type(&mut self, node_type: NodeType) -> &mut Self
Defines the node type. By default, Peer is used. If a server is desired, a bind address is expected
use std::net::SocketAddr;
use std::str::FromStr;
use citadel_sdk::prelude::NodeBuilder;
use citadel_proto::prelude::NodeType;
NodeBuilder::default().with_node_type(NodeType::Server(SocketAddr::from_str("0.0.0.0:25021").unwrap()));
sourcepub fn with_backend(&mut self, backend_type: BackendType) -> &mut Self
pub fn with_backend(&mut self, backend_type: BackendType) -> &mut Self
Sets the backend used to synchronize client account information. By default, uses the filesystem. When the enterprise feature is set, a SQL database (MySQL, PostgreSQL, SQLite) is available. Using a single SQL cluster can be used in combination with a cluster of load-balancing running [‘NetKernel’]’s on different IPs to construct scaled applications
sourcepub fn with_kernel_executor_settings(
&mut self,
kernel_executor_settings: KernelExecutorSettings,
) -> &mut Self
pub fn with_kernel_executor_settings( &mut self, kernel_executor_settings: KernelExecutorSettings, ) -> &mut Self
Sets the desired settings for the KernelExecutor
sourcepub fn with_server_argon_settings(
&mut self,
settings: ArgonDefaultServerSettings,
) -> &mut Self
pub fn with_server_argon_settings( &mut self, settings: ArgonDefaultServerSettings, ) -> &mut Self
Attaches custom Argon settings for password hashing at the server
sourcepub fn with_server_misc_settings(
&mut self,
misc_settings: ServerMiscSettings,
) -> &mut Self
pub fn with_server_misc_settings( &mut self, misc_settings: ServerMiscSettings, ) -> &mut Self
Attaches miscellaneous server settings (e.g., passwordless mode, credential requirements)
sourcepub fn with_underlying_protocol(
&mut self,
proto: ServerUnderlyingProtocol,
) -> &mut Self
pub fn with_underlying_protocol( &mut self, proto: ServerUnderlyingProtocol, ) -> &mut Self
Sets the underlying protocol for the server Default: TLS transport w/ self-signed cert
sourcepub async fn with_native_certs(&mut self) -> Result<&mut Self>
pub async fn with_native_certs(&mut self) -> Result<&mut Self>
Loads the accepted cert chain stored by the local operating system
If a custom set of certs is required, run Self::with_custom_certs
This is the default if no [RustlsClientConfig
] is specified
sourcepub fn with_insecure_skip_cert_verification(&mut self) -> &mut Self
pub fn with_insecure_skip_cert_verification(&mut self) -> &mut Self
The client will skip unconditionally server certificate verification This is not recommended
sourcepub fn with_custom_certs<T: AsRef<[u8]>>(
&mut self,
custom_certs: &[T],
) -> Result<&mut Self>
pub fn with_custom_certs<T: AsRef<[u8]>>( &mut self, custom_certs: &[T], ) -> Result<&mut Self>
Loads a custom list of certs into the acceptable certificate list. Connections that present server certificates that are outside of this list during the handshake process are refused
sourcepub async fn with_pem_file<P: AsRef<Path>>(
&mut self,
path: P,
) -> Result<&mut Self>
pub async fn with_pem_file<P: AsRef<Path>>( &mut self, path: P, ) -> Result<&mut Self>
The file should be a DER formatted certificate
sourcepub fn with_stun_servers<T: Into<String>, R: Into<Vec<T>>>(
&mut self,
servers: R,
) -> &mut Self
pub fn with_stun_servers<T: Into<String>, R: Into<Vec<T>>>( &mut self, servers: R, ) -> &mut Self
Specifies custom STUN servers. If left unspecified, will use the defaults (twilio and Google STUN servers)
sourcepub fn with_server_password<T: Into<PreSharedKey>>(
&mut self,
password: T,
) -> &mut Self
pub fn with_server_password<T: Into<PreSharedKey>>( &mut self, password: T, ) -> &mut Self
Sets the pre-shared key for the server. Only a server should set this value If no value is set, any client can connect to the server. If a pre-shared key is specified, the client must have the matching pre-shared key in order to register and connect with the server.
Trait Implementations§
source§impl Default for NodeBuilder
impl Default for NodeBuilder
source§fn default() -> NodeBuilder
fn default() -> NodeBuilder
Auto Trait Implementations§
impl Freeze for NodeBuilder
impl !RefUnwindSafe for NodeBuilder
impl Send for NodeBuilder
impl Sync for NodeBuilder
impl Unpin for NodeBuilder
impl !UnwindSafe for NodeBuilder
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<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.