gio::prelude

Trait VfsExt

Source
pub trait VfsExt:
    IsA<Vfs>
    + Sealed
    + 'static {
    // Provided methods
    fn file_for_path(&self, path: &str) -> File { ... }
    fn file_for_uri(&self, uri: &str) -> File { ... }
    fn supported_uri_schemes(&self) -> Vec<GString> { ... }
    fn is_active(&self) -> bool { ... }
    fn parse_name(&self, parse_name: &str) -> File { ... }
    fn register_uri_scheme(
        &self,
        scheme: &str,
        uri_func: Option<Box_<dyn Fn(&Vfs, &str) -> Option<File> + 'static>>,
        parse_name_func: Option<Box_<dyn Fn(&Vfs, &str) -> Option<File> + 'static>>,
    ) -> bool { ... }
    fn unregister_uri_scheme(&self, scheme: &str) -> bool { ... }
}
Expand description

Trait containing all Vfs methods.

§Implementors

Vfs

Provided Methods§

Source

fn file_for_path(&self, path: &str) -> File

Gets a #GFile for @path.

§path

a string containing a VFS path.

§Returns

a #GFile. Free the returned object with g_object_unref().

Source

fn file_for_uri(&self, uri: &str) -> File

Gets a #GFile for @uri.

This operation never fails, but the returned object might not support any I/O operation if the URI is malformed or if the URI scheme is not supported.

§uri

a string containing a URI

§Returns

a #GFile. Free the returned object with g_object_unref().

Source

fn supported_uri_schemes(&self) -> Vec<GString>

Gets a list of URI schemes supported by @self.

§Returns

a None-terminated array of strings. The returned array belongs to GIO and must not be freed or modified.

Source

fn is_active(&self) -> bool

Checks if the VFS is active.

§Returns

true if construction of the @self was successful and it is now active.

Source

fn parse_name(&self, parse_name: &str) -> File

This operation never fails, but the returned object might not support any I/O operations if the @parse_name cannot be parsed by the #GVfs module.

§parse_name

a string to be parsed by the VFS module.

§Returns

a #GFile for the given @parse_name. Free the returned object with g_object_unref().

Source

fn register_uri_scheme( &self, scheme: &str, uri_func: Option<Box_<dyn Fn(&Vfs, &str) -> Option<File> + 'static>>, parse_name_func: Option<Box_<dyn Fn(&Vfs, &str) -> Option<File> + 'static>>, ) -> bool

Registers @uri_func and @parse_name_func as the #GFile URI and parse name lookup functions for URIs with a scheme matching @scheme. Note that @scheme is registered only within the running application, as opposed to desktop-wide as it happens with GVfs backends.

When a #GFile is requested with an URI containing @scheme (e.g. through g_file_new_for_uri()), @uri_func will be called to allow a custom constructor. The implementation of @uri_func should not be blocking, and must not call g_vfs_register_uri_scheme() or g_vfs_unregister_uri_scheme().

When g_file_parse_name() is called with a parse name obtained from such file, @parse_name_func will be called to allow the #GFile to be created again. In that case, it’s responsibility of @parse_name_func to make sure the parse name matches what the custom #GFile implementation returned when g_file_get_parse_name() was previously called. The implementation of @parse_name_func should not be blocking, and must not call g_vfs_register_uri_scheme() or g_vfs_unregister_uri_scheme().

It’s an error to call this function twice with the same scheme. To unregister a custom URI scheme, use g_vfs_unregister_uri_scheme().

§scheme

an URI scheme, e.g. “http”

§uri_func

a #GVfsFileLookupFunc

§uri_data

custom data passed to be passed to @uri_func, or None

§uri_destroy

function to be called when unregistering the URI scheme, or when @self is disposed, to free the resources used by the URI lookup function

§parse_name_func

a #GVfsFileLookupFunc

§parse_name_data

custom data passed to be passed to @parse_name_func, or None

§parse_name_destroy

function to be called when unregistering the URI scheme, or when @self is disposed, to free the resources used by the parse name lookup function

§Returns

true if @scheme was successfully registered, or false if a handler for @scheme already exists.

Source

fn unregister_uri_scheme(&self, scheme: &str) -> bool

Unregisters the URI handler for @scheme previously registered with g_vfs_register_uri_scheme().

§scheme

an URI scheme, e.g. “http”

§Returns

true if @scheme was successfully unregistered, or false if a handler for @scheme does not exist.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<O: IsA<Vfs>> VfsExt for O