pub struct LocalSandbox { /* private fields */ }Expand description
A Sandbox backed by the local manager.
Implementations§
Source§impl LocalSandbox
impl LocalSandbox
Sourcepub async fn new(
binding_name: &str,
binding: &LocalSandboxBinding,
) -> Result<Self>
pub async fn new( binding_name: &str, binding: &LocalSandboxBinding, ) -> Result<Self>
Builds a provider from its binding, reading the route token from the path it names.
The binding carries a path rather than the token itself: a binding is serialized into the workload’s environment, and a secret there is a secret in state.
Trait Implementations§
impl Binding for LocalSandbox
Source§impl Debug for LocalSandbox
impl Debug for LocalSandbox
Source§impl Sandbox for LocalSandbox
impl Sandbox for LocalSandbox
Source§fn capabilities(&self) -> SandboxCapabilities
fn capabilities(&self) -> SandboxCapabilities
What this platform’s backend supports.
Source§fn create<'life0, 'async_trait>(
&'life0 self,
request: CreateSessionRequest,
) -> Pin<Box<dyn Future<Output = Result<SandboxSession>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create<'life0, 'async_trait>(
&'life0 self,
request: CreateSessionRequest,
) -> Pin<Box<dyn Future<Output = Result<SandboxSession>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Creates a session that can already take work. Read more
Source§fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<SandboxSession>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<SandboxSession>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetches a session by id, or
None if it does not exist. Read moreSource§fn get_or_create<'life0, 'async_trait>(
&'life0 self,
request: CreateSessionRequest,
) -> Pin<Box<dyn Future<Output = Result<SandboxSession>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_or_create<'life0, 'async_trait>(
&'life0 self,
request: CreateSessionRequest,
) -> Pin<Box<dyn Future<Output = Result<SandboxSession>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Fetches a session, creating it if absent.
Source§fn list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<SandboxSession>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<SandboxSession>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Lists sessions belonging to this sandbox’s parent. Read more
Source§fn run_command<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
request: RunCommandRequest,
) -> Pin<Box<dyn Future<Output = Result<BoxStream<'static, Result<CommandOutput>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn run_command<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
request: RunCommandRequest,
) -> Pin<Box<dyn Future<Output = Result<BoxStream<'static, Result<CommandOutput>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Runs a command, streaming output frames until exactly one terminal frame. Read more
Source§fn read_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
path: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn read_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
path: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Reads a file out of the sandbox. Requires
files. Paths are normalised and may not
escape the root.Source§fn write_files<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
files: BTreeMap<String, Vec<u8>>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn write_files<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
files: BTreeMap<String, Vec<u8>>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Writes files into the sandbox. Requires
files.Source§fn mkdir<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
path: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn mkdir<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
path: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Creates a directory inside the sandbox. Requires
files.Source§fn preview<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
port: u16,
) -> Pin<Box<dyn Future<Output = Result<PreviewCapability>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn preview<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
port: u16,
) -> Pin<Box<dyn Future<Output = Result<PreviewCapability>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Mints a capability to reach a declared port. Requires
preview.Source§fn suspend<'life0, 'life1, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn suspend<'life0, 'life1, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Suspends a session, preserving state. Requires
suspendResume.Source§fn resume<'life0, 'life1, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn resume<'life0, 'life1, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Resumes a suspended session. Requires
suspendResume.Source§fn snapshot<'life0, 'life1, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn snapshot<'life0, 'life1, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Captures full session state and returns its identifier. Requires
snapshot.Source§fn start_job<'life0, 'life1, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
_request: RunCommandRequest,
) -> Pin<Box<dyn Future<Output = Result<JobStart>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn start_job<'life0, 'life1, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
_request: RunCommandRequest,
) -> Pin<Box<dyn Future<Output = Result<JobStart>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Starts a command as a job, which outlives the call that started it. Requires
jobs. Read moreSource§fn poll_job<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
_job_id: &'life2 str,
_since_seq: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<JobPoll>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn poll_job<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
_job_id: &'life2 str,
_since_seq: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<JobPoll>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn cancel_job<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
_job_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn cancel_job<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
_job_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Cancels a job, stopping its command. Requires
jobs. Read moreSource§fn terminate<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn terminate<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Terminates a session. Idempotent: terminating an absent session succeeds.
Auto Trait Implementations§
impl !RefUnwindSafe for LocalSandbox
impl !UnwindSafe for LocalSandbox
impl Freeze for LocalSandbox
impl Send for LocalSandbox
impl Sync for LocalSandbox
impl Unpin for LocalSandbox
impl UnsafeUnpin for LocalSandbox
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> ErasedDestructor for Twhere
T: 'static,
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> ⓘ
Converts
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> ⓘ
Converts
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 moreCreates a shared type from an unshared type.