Incular logoIncular
API ReferencePlatform & Testing

File Dialogs

Validated dialog requests, filters, content types, and errors.

FileDialogRequest { kind, options } is fully validated before dispatch; cancellation arrives as an outcome, not an error.

use incular::prelude::*;

fn main() {
    let filter =
        FileDialogFilter::extensions("images", "Images", ["png", "jpg"])
            .expect("filter");
    println!("filter: {}", filter.id().as_str());
    let ext = FileExtension::new("png").expect("extension");
    println!("ext: {}", ext.as_str());
    let content = FileContentType::new("image/png").expect("content type");
    println!("kind: {}", content.kind() == FileContentTypeKind::Mime);
}

FileDialogFilterId is the stable semantic identity (labels are presentation-only). FileDialogOption: ExtensionFilters / MimeTypeFilters / TypeIdentifierFilters / SuggestedFileName / SuggestedDirectory / ParentWindow (backend-support varies). FileDialogValidationError: bad ids/labels/extensions/content-types, empty or duplicate filters, inapplicable options. FileDialogError: invalid request, closed parent, stopped app, unsupported op/option, bad result, backend message. DocumentActivation (from_paths, documents()) and DocumentDescriptor (path preserved exactly) model open-document intents. FileContentTypeKind: Mime / TypeIdentifier — the identifier family.

Related: Application.