pub struct SataClient { /* private fields */ }clients only.Expand description
A connection to a sata pcfs server.
Implementations§
Source§impl SataClient
impl SataClient
Sourcepub async fn connect<AddrTy: ToSocketAddrs>(
address: AddrTy,
supports_csr: bool,
supports_ffio: bool,
first_read_size: u32,
first_write_size: u32,
trace_io_during_debug: bool,
) -> Result<Self, CatBridgeError>
pub async fn connect<AddrTy: ToSocketAddrs>( address: AddrTy, supports_csr: bool, supports_ffio: bool, first_read_size: u32, first_write_size: u32, trace_io_during_debug: bool, ) -> Result<Self, CatBridgeError>
Sourcepub async fn try_set_csr_ffio(
&self,
csr: bool,
ffio: bool,
) -> Result<(), CatBridgeError>
pub async fn try_set_csr_ffio( &self, csr: bool, ffio: bool, ) -> Result<(), CatBridgeError>
Attempt to update Combined Send/Recv & Fast File I/O flags.
This may fail if setting to ‘true’, as both the server, and client have to support, and agree to these flags in order for them to be supported.
§Errors
If we cannot negotiate with the server to update combined send/recv.
Sourcepub async fn try_set_csr(&self, csr: bool) -> Result<(), CatBridgeError>
pub async fn try_set_csr(&self, csr: bool) -> Result<(), CatBridgeError>
Attempt to update combined send/recv flag or “CSR”.
This may fail if setting to ‘true’, as both the server, and client have to support, and agree to support Combined Send/Recv.
§Errors
If we cannot negotiate with the server to update combined send/recv.
Sourcepub async fn try_set_ffio(&self, ffio: bool) -> Result<(), CatBridgeError>
pub async fn try_set_ffio(&self, ffio: bool) -> Result<(), CatBridgeError>
Attempt to update fast-file i/o or “FFIO”.
This may fail if setting to ‘true’, as both the server, and client have to support, and agree to support FFIO.
§Errors
If we cannot negotiate with the server to update combined send/recv.
Sourcepub async fn ping(
&self,
timeout: Option<Duration>,
) -> Result<(), CatBridgeError>
pub async fn ping( &self, timeout: Option<Duration>, ) -> Result<(), CatBridgeError>
Perform a ‘ping’ on the remote host, and update our CSR/FFIO flag state.
§Errors
If we cannot send a request to our upstream PCFS server, or if we cannot read a response back in the timeout specified.
Sourcepub async fn change_mode(
&self,
path: String,
writable: bool,
timeout: Option<Duration>,
) -> Result<(), CatBridgeError>
pub async fn change_mode( &self, path: String, writable: bool, timeout: Option<Duration>, ) -> Result<(), CatBridgeError>
Mark a file as ‘read-only’, or ‘writable’.
In the future someday we may allow full change mode flags of unix-style flags. Unfortunately because this is based off of windows code you have only a read-only vs writable flag.
§Errors
- If the path name is too long to be serialized.
- If we cannot send the request to the PCFS Sata server.
- If we cannot receive a response from the PCFS Sata server.
- If we cannot parse the response from the PCFS Sata server.
- If the return code of the response was not successful.
Sourcepub async fn change_owner(
&self,
path: String,
owner: u32,
group: u32,
timeout: Option<Duration>,
) -> Result<(), CatBridgeError>
pub async fn change_owner( &self, path: String, owner: u32, group: u32, timeout: Option<Duration>, ) -> Result<(), CatBridgeError>
Change the user owner, and group owner of a file.
NOTE(mythra): this will always error when talking with a PCFS compatible server.
§Errors
- If the path name is too long to be serialized.
- If we cannot send the request to the PCFS Sata server.
- If we cannot receive a response from the PCFS Sata server.
- If we cannot parse the response from the PCFS Sata server.
- If the return code of the response was not successful.
Sourcepub async fn create_folder(
&self,
path: String,
writable: bool,
timeout: Option<Duration>,
) -> Result<(), CatBridgeError>
pub async fn create_folder( &self, path: String, writable: bool, timeout: Option<Duration>, ) -> Result<(), CatBridgeError>
Create a new folder on the remote PCFS server.
§Errors
- If the path name is too long to be serialized.
- If we cannot send the request to the PCFS Sata server.
- If we cannot receive a response from the PCFS Sata server.
- If we cannot parse the response from the PCFS Sata server.
- If the return code of the response was not successful.
Sourcepub async fn info_by_query(
&self,
path: String,
query_type: SataQueryType,
timeout: Option<Duration>,
) -> Result<SataQueryResponse, CatBridgeError>
pub async fn info_by_query( &self, path: String, query_type: SataQueryType, timeout: Option<Duration>, ) -> Result<SataQueryResponse, CatBridgeError>
Query a particular path for information about it.
In general prefer more specific query types, as opposed to this particular “grab-bag” of an interface, which will safely wrap this function and choose the right kind of return type.
§Errors
- If the path name is too long to be serialized.
- If we cannot send the request to the PCFS Sata server.
- If we cannot receive a response from the PCFS Sata server.
- If we cannot parse the response from the PCFS Sata server.
- If the return code of the response was not successful.
Sourcepub async fn file_count(
&self,
path: String,
timeout: Option<Duration>,
) -> Result<u32, CatBridgeError>
pub async fn file_count( &self, path: String, timeout: Option<Duration>, ) -> Result<u32, CatBridgeError>
Get the amount of files within a particular folder.
§Errors
- If the path name is too long to be serialized.
- If we cannot send the request to the PCFS Sata server.
- If we cannot receive a response from the PCFS Sata server.
- If we cannot parse the response from the PCFS Sata server.
- If the return code of the response was not successful.
Sourcepub async fn free_disk_space(
&self,
path: String,
timeout: Option<Duration>,
) -> Result<u64, CatBridgeError>
pub async fn free_disk_space( &self, path: String, timeout: Option<Duration>, ) -> Result<u64, CatBridgeError>
Get the amount of free disk space left on whatever disk the path is on.
§Errors
- If the path name is too long to be serialized.
- If we cannot send the request to the PCFS Sata server.
- If we cannot receive a response from the PCFS Sata server.
- If we cannot parse the response from the PCFS Sata server.
- If the return code of the response was not successful.
Sourcepub async fn folder_size(
&self,
path: String,
timeout: Option<Duration>,
) -> Result<u64, CatBridgeError>
pub async fn folder_size( &self, path: String, timeout: Option<Duration>, ) -> Result<u64, CatBridgeError>
Get the total amount of space being taken by a folder.
§Errors
- If the path name is too long to be serialized.
- If we cannot send the request to the PCFS Sata server.
- If we cannot receive a response from the PCFS Sata server.
- If we cannot parse the response from the PCFS Sata server.
- If the return code of the response was not successful.
Sourcepub async fn path_info(
&self,
path: String,
timeout: Option<Duration>,
) -> Result<SataFDInfo, CatBridgeError>
pub async fn path_info( &self, path: String, timeout: Option<Duration>, ) -> Result<SataFDInfo, CatBridgeError>
Get the information about a particular file path.
§Errors
- If the path name is too long to be serialized.
- If we cannot send the request to the PCFS Sata server.
- If we cannot receive a response from the PCFS Sata server.
- If we cannot parse the response from the PCFS Sata server.
- If the return code of the response was not successful.
Sourcepub async fn remove(
&self,
path: String,
timeout: Option<Duration>,
) -> Result<(), CatBridgeError>
pub async fn remove( &self, path: String, timeout: Option<Duration>, ) -> Result<(), CatBridgeError>
Remove a file or folder on the host filesystem.
§Errors
- If the path name is too long to be serialized.
- If we cannot send the request to the PCFS Sata server.
- If we cannot receive a response from the PCFS Sata server.
- If we cannot parse the response from the PCFS Sata server.
- If the return code of the response was not successful.
Sourcepub async fn open_file(
&self,
path: String,
mode_string: String,
timeout: Option<Duration>,
) -> Result<SataClientFileHandle<'_>, CatBridgeError>
pub async fn open_file( &self, path: String, mode_string: String, timeout: Option<Duration>, ) -> Result<SataClientFileHandle<'_>, CatBridgeError>
Attempt to open a file on the remote host.
This will return a file handle that you can then call read, write, etc.
on. You will have to call close() on the file handle specifically.
§Errors
- If the path name is too long to be serialized.
- If the mode setring is not formatted correctly.
- If we cannot send the request to the PCFS Sata server.
- If we cannot receive a response from the PCFS Sata server.
- If we cannot parse the response from the PCFS Sata server.
- If the return code of the response was not successful.
Trait Implementations§
Source§impl Debug for SataClient
impl Debug for SataClient
Source§impl Structable for SataClient
impl Structable for SataClient
Source§fn definition(&self) -> StructDef<'_>
fn definition(&self) -> StructDef<'_>
Auto Trait Implementations§
impl Freeze for SataClient
impl !RefUnwindSafe for SataClient
impl Send for SataClient
impl !Sync for SataClient
impl Unpin for SataClient
impl !UnwindSafe for SataClient
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> 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<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more