Skip to main content

OmbracServer

Struct OmbracServer 

Source
pub struct OmbracServer { /* private fields */ }
Expand description

OmbracServer provides a simple, easy-to-use API for starting and managing the ombrac server using QUIC transport.

This struct hides all transport-specific implementation details and provides a clean interface for external users.

§Example

use ombrac_server::{OmbracServer, ServiceConfig};
use std::sync::Arc;

let config = Arc::new(ServiceConfig {
    secret: "my-secret".to_string(),
    listen: "0.0.0.0:8080".parse()?,
    transport: Default::default(),
    connection: Default::default(),
    logging: Default::default(),
});

let server = OmbracServer::build(config).await?;
// ... use server ...
server.shutdown().await;

Implementations§

Source§

impl OmbracServer

Source

pub async fn build(config: Arc<ServiceConfig>) -> Result<Self>

Builds a new server instance from the configuration.

This method:

  1. Creates a QUIC server from the transport configuration
  2. Sets up connection validation using the secret
  3. Spawns the accept loop in a background task
  4. Returns an OmbracServer handle for lifecycle management
§Arguments
  • config - The service configuration containing transport, connection, and secret settings
§Returns

A configured OmbracServer instance ready to accept connections, or an error if configuration is invalid or server setup fails.

Source

pub async fn shutdown(self)

Gracefully shuts down the server.

This method will:

  1. Send a shutdown signal to stop accepting new connections
  2. Wait for the accept loop to finish gracefully
  3. Wait for existing connections to close
§Example
server.shutdown().await;

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

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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<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
Source§

impl<T> ErasedDestructor for T
where T: 'static,