/// What a pick offers and what it may copy. `mime_types` is the document /// sheet's own filter, comma-separated; empty offers every type. #[derive(Debug, Clone, Serialize, Deserialize, Default)] #[serde(rename_all = "camelCase")] pub struct PickFileArgs { pub mime_types: Option, /// How big a document may be COPIED into the app's cache when it has no /// path of its own on this phone. Zero refuses the copy. pub max_copy_bytes: u32, } /// A picked document. `path` is the document's own when this phone has one /// for it, else the cache copy's (`copied`); `name` is the display name the /// provider gave it, which is what decides a playlist's format and title. #[derive(Debug, Clone, Serialize, Deserialize, Default)] #[serde(rename_all = "camelCase")] pub struct PickedFile { pub path: Option, #[serde(default)] pub name: String, #[serde(default)] pub size: Option, #[serde(default)] pub copied: bool, }