pub struct NodeBuilder { /* private fields */ }Expand description
Builder for constructing a Node<TailscaleProvider>.
Configures the Tailscale sidecar, network identity, and transport parameters before wiring all layers together.
§Example
let node = Node::builder()
.name("my-node")
.sidecar_path("/opt/truffle/sidecar")
.ws_port(9417)
.build()
.await?;Implementations§
Source§impl NodeBuilder
impl NodeBuilder
Sourcepub fn name(self, name: &str) -> Self
pub fn name(self, name: &str) -> Self
Set the node’s display name (used as the Tailscale hostname).
Sourcepub fn sidecar_path(self, path: impl Into<PathBuf>) -> Self
pub fn sidecar_path(self, path: impl Into<PathBuf>) -> Self
Set the path to the Go sidecar binary.
Sourcepub fn auth_key(self, key: &str) -> Self
pub fn auth_key(self, key: &str) -> Self
Set the Tailscale auth key for headless authentication.
Sourcepub fn ephemeral(self, val: bool) -> Self
pub fn ephemeral(self, val: bool) -> Self
Set whether the node is ephemeral (auto-removed from tailnet on shutdown).
Sourcepub async fn build(self) -> Result<Node<TailscaleProvider>, NodeError>
pub async fn build(self) -> Result<Node<TailscaleProvider>, NodeError>
Build and start the node.
This creates the TailscaleProvider, starts it, creates the WebSocket transport and PeerRegistry, starts the session, and spawns the envelope router.
§Errors
Returns NodeError::BuildError if required configuration is missing,
or propagates errors from the network provider startup.
Sourcepub async fn build_with_auth_handler(
self,
on_auth: impl Fn(String) + Send + 'static,
) -> Result<Node<TailscaleProvider>, NodeError>
pub async fn build_with_auth_handler( self, on_auth: impl Fn(String) + Send + 'static, ) -> Result<Node<TailscaleProvider>, NodeError>
Build and start the node, calling on_auth if authentication is needed.
This is identical to build() except it subscribes to
provider events before provider.start() blocks, forwarding
AuthRequired events to the callback while waiting for authentication
to complete.
§Errors
Returns NodeError::BuildError if required configuration is missing,
or propagates errors from the network provider startup.
Trait Implementations§
Source§impl Clone for NodeBuilder
impl Clone for NodeBuilder
Source§fn clone(&self) -> NodeBuilder
fn clone(&self) -> NodeBuilder
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more