Skip to main content

RemoteFiles

Struct RemoteFiles 

Source
pub struct RemoteFiles {
    pub conn: String,
    pub home: String,
    pub os: String,
    calls: UnboundedSender<Call>,
    last_used: Mutex<Instant>,
}
Expand description

One open connection to a host’s helper.

Fields§

§conn: String

The connection’s canonical name.

§home: String

The user’s home directory there (~).

§os: String

std::env::consts::OS there.

§calls: UnboundedSender<Call>§last_used: Mutex<Instant>

Implementations§

Source§

impl RemoteFiles

Source

pub async fn over<R, W>( conn: &str, reader: R, writer: W, keep: Box<dyn Any + Send>, ) -> Result<Arc<Self>, RemoteError>
where R: AsyncRead + Unpin + Send + 'static, W: AsyncWrite + Unpin + Send + 'static,

Speak the protocol over reader and writer (an ssh’s stdout and stdin), handshake included. keep lives as long as the connection (the ssh child and its askpass grant).

Source

pub fn is_open(&self) -> bool

Whether the connection is still up.

Source

pub async fn call(&self, req: Request) -> Result<Reply, RemoteError>

One request; a host’s refusal is Err with its kind.

Source

pub async fn stat(&self, path: &str) -> Result<Entry, RemoteError>

Source

pub async fn list(&self, path: &str) -> Result<Vec<Entry>, RemoteError>

Every entry of a directory, a page at a time.

Source

pub async fn read(&self, path: &str, max: u64) -> Result<Vec<u8>, RemoteError>

A whole file of at most max bytes, read in ranges.

Source

pub async fn write(&self, path: &str, data: Vec<u8>) -> Result<(), RemoteError>

Replace a file with data, atomically on the host.

Source

pub async fn append(&self, path: &str, data: Vec<u8>) -> Result<(), RemoteError>

Add data to the end of an existing file (a big upload, in pieces).

Source

pub async fn read_range( &self, path: &str, offset: u64, len: u32, ) -> Result<(Vec<u8>, bool), RemoteError>

One range of a file: up to len bytes from offset, and whether the file ends there.

Source

pub async fn replace(&self, from: &str, to: &str) -> Result<(), RemoteError>

Rename the file from over the file to in one step.

Source

pub async fn realpath(&self, path: &str) -> Result<String, RemoteError>

path with its links and .. resolved.

Source

pub async fn set_meta( &self, path: &str, mode: u32, mtime_ms: i64, ) -> Result<(), RemoteError>

A file’s permission bits (mode, 0 to leave) and modification time (mtime_ms, 0 to leave).

Source

pub async fn sync(&self, path: &str) -> Result<(), RemoteError>

Flush a file’s contents to disk.

Source

pub async fn pane_procs( &self, block_id: &str, session: &str, ) -> Result<PaneFrame, RemoteError>

One pane’s processes on the host (PaneProcs): durable session’s shell, else those marked with block_id.

Source

pub async fn procs( &self, top: u32, filter: &str, ) -> Result<ProcFrame, RemoteError>

The host’s processes for Tower: the top busiest and largest among those matching filter, with totals (agentmux_remote::procs).

Source

pub async fn mkdir(&self, path: &str, parents: bool) -> Result<(), RemoteError>

Source

pub async fn rename(&self, from: &str, to: &str) -> Result<(), RemoteError>

Source

pub async fn delete( &self, path: &str, recursive: bool, ) -> Result<(), RemoteError>

Source

async fn done(&self, req: Request) -> Result<(), RemoteError>

Source

fn idle_for(&self) -> Duration

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
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync> ⓘ

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

§

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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

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

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
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