ServerInitResult

Struct ServerInitResult 

Source
pub struct ServerInitResult {
    pub servers: HashMap<String, LspServer>,
    pub failures: Vec<ServerSpawnFailure>,
}
Expand description

Result of attempting to spawn multiple LSP servers.

This type enables graceful degradation by collecting both successful initializations and failures. Use the helper methods to inspect the outcome and make decisions about how to proceed.

§Examples

use mcpls_core::lsp::ServerInitResult;
use mcpls_core::error::ServerSpawnFailure;

let mut result = ServerInitResult::new();

// Check for different scenarios
if result.all_failed() {
    eprintln!("All servers failed to initialize");
} else if result.partial_success() {
    println!("Some servers succeeded, some failed");
} else if result.has_servers() {
    println!("All servers initialized successfully");
}

Fields§

§servers: HashMap<String, LspServer>

Successfully initialized servers (language_id -> server).

§failures: Vec<ServerSpawnFailure>

Failures that occurred during spawn attempts.

Implementations§

Source§

impl ServerInitResult

Source

pub fn new() -> Self

Create a new empty result.

Source

pub fn has_servers(&self) -> bool

Check if any servers were successfully initialized.

Returns true if at least one server is available for use.

Source

pub fn all_failed(&self) -> bool

Check if all attempted servers failed.

Returns true only if there were failures and no servers succeeded. Returns false for empty results (no servers configured).

Source

pub fn partial_success(&self) -> bool

Check if some but not all servers failed.

Returns true if there are both successful servers and failures.

Source

pub fn server_count(&self) -> usize

Get the number of successfully initialized servers.

Source

pub fn failure_count(&self) -> usize

Get the number of failures.

Source

pub fn add_server(&mut self, language_id: String, server: LspServer)

Add a successful server.

If a server with the same language_id already exists, it will be replaced.

Source

pub fn add_failure(&mut self, failure: ServerSpawnFailure)

Add a failure.

Trait Implementations§

Source§

impl Debug for ServerInitResult

Source§

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

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

impl Default for ServerInitResult

Source§

fn default() -> Self

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

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, 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