karyon_jsonrpc::server

Struct Server

Source
pub struct Server {
    listener: Listener<Value, Error>,
    task_group: TaskGroup,
    config: ServerConfig,
}
Expand description

Represents an RPC server

Fields§

§listener: Listener<Value, Error>§task_group: TaskGroup§config: ServerConfig

Implementations§

Source§

impl Server

Source

pub fn start(self: Arc<Self>)

Starts the RPC server by spawning a new task for the main accept loop. The accept loop listens for incoming connections.

This function does not block the current thread. If you need the thread to block, use the [start_block] method instead.

Source

pub async fn start_block(self: Arc<Self>) -> Result<()>

Starts the RPC server by running the main accept loop. The accept loop listens for incoming connections and blocks the current thread.

If you prefer a non-blocking implementation, use the [start] method instead.

Source

async fn accept_loop(self: &Arc<Self>) -> Result<()>

Source

pub fn local_endpoint(&self) -> Result<Endpoint>

Returns the local endpoint.

Source

pub async fn shutdown(&self)

Shuts down the RPC server

Source

async fn handle_conn(self: &Arc<Self>, conn: Conn<Value, Error>) -> Result<()>

Handles a new connection

Source

fn sanity_check(&self, request: Value) -> SanityCheckResult

Source

async fn new_request( self: &Arc<Self>, queue: Arc<ResponseQueue<Value>>, channel: Arc<Channel>, msg: Value, )

Spawns a new task for handling the new request

Source

async fn handle_request(&self, channel: Arc<Channel>, msg: Value) -> Response

Handles the new request, and returns an RPC Response that has either an error or result

Source

async fn init( config: ServerConfig, ex: Option<Executor>, codec: impl ClonableJsonCodec + 'static, ) -> Result<Arc<Self>>

Initializes a new Server from the provided ServerConfig

Source

async fn listen( config: &ServerConfig, codec: impl ClonableJsonCodec + 'static, ) -> Result<Listener<Value, Error>>

Auto Trait Implementations§

§

impl !Freeze for Server

§

impl !RefUnwindSafe for Server

§

impl Send for Server

§

impl Sync for Server

§

impl Unpin for Server

§

impl !UnwindSafe for Server

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.

§

impl<T> Instrument for T

§

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

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

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> 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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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