pub struct LaunchOptions {
pub bootstrap_payload: String,
pub process_name: String,
pub command: BootstrapCommand,
pub want_stdio: bool,
pub tail_lines: usize,
pub log_channel: Option<ChannelAddr>,
}Expand description
Per-launch policy computed by the manager and handed to the launcher.
Motivation: different launch backends (native OS process, docker, python/actor protocol) need different mechanics, but they should all receive the same intent from the manager:
- do we need a stdio stream we can forward / tail?
- if so, how many tail lines should be retained for diagnostics?
- if forwarding over the mesh is enabled, what channel address should be used (if applicable)?
Fields§
§bootstrap_payload: StringSerialized Bootstrap payload for HYPERACTOR_MESH_BOOTSTRAP_MODE env var.
process_name: StringHuman-readable process name for HYPERACTOR_PROCESS_NAME env var.
command: BootstrapCommandThe bootstrap command describing what should be executed for a proc.
This is the payload of what to run; the launcher decides how to run it:
- Native launcher: execs it directly (spawns the command).
- systemd/container/VM/actor launchers: may treat it as the command to run inside the launched environment.
Used by backends to construct the actual invocation.
want_stdio: boolIf true, the manager wants access to a stream (pipes or an equivalent).
Native: pipe stdout/stderr (Stdio::piped()), return
StdioHandling::Captured. Docker/Python: may implement as log
streaming, RPC, etc., or ignore and return
StdioHandling::ManagedByLauncher / Inherited depending on
capability.
tail_lines: usizeMax number of stderr (and/or stdout) lines retained for diagnostics/tailing.
Manager uses this when attaching StreamFwder for native
Captured pipes. Backends that manage logs internally may use
it to decide how much to retain before reporting stderr_tail
in ProcExitResult.
0 means “no tail buffering requested”.
log_channel: Option<ChannelAddr>Optional “forward logs over mesh” address.
This is provisioned by the manager when log-forwarding is enabled.
Nonemeans “no mesh log forwarding requested”.Some(addr)means “arrange for child logs to be forwarded toaddr” (if the backend supports it).
Native backend: sets BOOTSTRAP_LOG_CHANNEL=addr in the child
env when Some. Other backends may ignore it or use it to
wire their own forwarding mechanism.
Trait Implementations§
Source§impl Clone for LaunchOptions
impl Clone for LaunchOptions
Source§fn clone(&self) -> LaunchOptions
fn clone(&self) -> LaunchOptions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for LaunchOptions
impl RefUnwindSafe for LaunchOptions
impl Send for LaunchOptions
impl Sync for LaunchOptions
impl Unpin for LaunchOptions
impl UnwindSafe for LaunchOptions
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<A, M> Handler<IndexedErasedUnbound<M>> for A
impl<A, M> Handler<IndexedErasedUnbound<M>> for A
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].