Trait FilePicker
pub trait FilePicker: Send + Sync {
// Required methods
fn pick(&self, request: PickRequest) -> Receiver<PortalOutcome>;
fn pick_multiple(&self, request: PickRequest) -> Receiver<MultiOutcome>;
fn open_file(&self, request: PickRequest) -> Receiver<OpenFileOutcome>;
fn launch(&self, request: LaunchRequest) -> Receiver<LaunchOutcome>;
// Provided methods
fn save_file(&self, request: PickRequest) -> Receiver<OpenFileOutcome> { ... }
fn pick_contents(&self, request: PickRequest) -> Receiver<ContentsOutcome> { ... }
fn save_contents(
&self,
request: PickRequest,
bytes: Vec<u8>,
) -> Receiver<SaveOutcome> { ... }
}Expand description
Host-provided file choosing and opening.
Every method returns a channel the UI thread drains once per frame, so an implementation may answer immediately, from a worker thread, or from a later host callback — it must never block the caller.
Required Methods§
fn pick(&self, request: PickRequest) -> Receiver<PortalOutcome>
fn pick(&self, request: PickRequest) -> Receiver<PortalOutcome>
A single-file Open, Save or folder chooser.
fn pick_multiple(&self, request: PickRequest) -> Receiver<MultiOutcome>
fn pick_multiple(&self, request: PickRequest) -> Receiver<MultiOutcome>
A multi-select Open chooser.
fn open_file(&self, request: PickRequest) -> Receiver<OpenFileOutcome>
fn open_file(&self, request: PickRequest) -> Receiver<OpenFileOutcome>
A single-file Open chooser that delivers the already-open descriptor.
fn launch(&self, request: LaunchRequest) -> Receiver<LaunchOutcome>
fn launch(&self, request: LaunchRequest) -> Receiver<LaunchOutcome>
Open a local path with its default handler, or reveal its folder.
Provided Methods§
fn save_file(&self, request: PickRequest) -> Receiver<OpenFileOutcome>
fn save_file(&self, request: PickRequest) -> Receiver<OpenFileOutcome>
A Save chooser that delivers the chosen destination already open for writing, for hosts whose documents have no path the app can write to. Hosts that answer Save with a path keep this default refusal.
fn pick_contents(&self, request: PickRequest) -> Receiver<ContentsOutcome>
fn pick_contents(&self, request: PickRequest) -> Receiver<ContentsOutcome>
An Open chooser that delivers the chosen files’ contents. The default
reads what pick or pick_multiple
answers; a host without local paths (a browser page) implements it
directly. Implementations must enforce the aggregate
PickRequest::contents_byte_limit before reading unbounded contents.
fn save_contents(
&self,
request: PickRequest,
bytes: Vec<u8>,
) -> Receiver<SaveOutcome>
fn save_contents( &self, request: PickRequest, bytes: Vec<u8>, ) -> Receiver<SaveOutcome>
A Save chooser that stores bytes. The default writes to the path
pick answers.