pub struct ServerReady {
pub address: Option<String>,
}Expand description
The one-line stdout readiness handshake every persistent server the
daemon spawns (db / api / mcp / viewer / laboratory host) emits the
moment it is serving: {"type":"ready","address":...}. The daemon —
which holds the child’s stdout pipe for its whole life (the children
are OS-leashed to it) — reads lines until this parses, caches the
address, and keeps draining. address is the server’s client
connect coordinate (http://… for api/mcp, postgresql://… for
db) or None for servers with no listener (viewer, laboratory
host — they dial out; the line is pure readiness).
This replaced the old lockfile-readiness scheme: servers no longer publish locks (the daemon is their sole spawner and owns their lifetime), so there is nothing on disk to discover. The daemon’s OWN lock is the one survivor — short-lived CLI processes need a rendezvous outside any pipe to find an already-running daemon.
Fields§
§address: Option<String>Trait Implementations§
Source§impl Clone for ServerReady
impl Clone for ServerReady
Source§fn clone(&self) -> ServerReady
fn clone(&self) -> ServerReady
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ServerReady
impl Debug for ServerReady
Source§impl<'de> Deserialize<'de> for ServerReady
impl<'de> Deserialize<'de> for ServerReady
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for ServerReady
Source§impl PartialEq for ServerReady
impl PartialEq for ServerReady
Source§impl Serialize for ServerReady
impl Serialize for ServerReady
impl StructuralPartialEq for ServerReady
Auto Trait Implementations§
impl Freeze for ServerReady
impl RefUnwindSafe for ServerReady
impl Send for ServerReady
impl Sync for ServerReady
impl Unpin for ServerReady
impl UnsafeUnpin for ServerReady
impl UnwindSafe for ServerReady
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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