pub trait VfsExt: 'static {
// Required 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) -> File + 'static>>,
parse_name_func: Option<Box_<dyn Fn(&Vfs, &str) -> File + 'static>>
) -> bool;
fn unregister_uri_scheme(&self, scheme: &str) -> bool;
}
Expand description
Required Methods§
sourcefn file_for_path(&self, path: &str) -> File
fn file_for_path(&self, path: &str) -> File
sourcefn file_for_uri(&self, uri: &str) -> File
fn file_for_uri(&self, uri: &str) -> File
sourcefn supported_uri_schemes(&self) -> Vec<GString>
fn supported_uri_schemes(&self) -> Vec<GString>
sourcefn parse_name(&self, parse_name: &str) -> File
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 Vfs
module.
parse_name
a string to be parsed by the VFS module.
Returns
a File
for the given parse_name
.
Free the returned object with g_object_unref()
.
sourcefn register_uri_scheme(
&self,
scheme: &str,
uri_func: Option<Box_<dyn Fn(&Vfs, &str) -> File + 'static>>,
parse_name_func: Option<Box_<dyn Fn(&Vfs, &str) -> File + 'static>>
) -> bool
fn register_uri_scheme( &self, scheme: &str, uri_func: Option<Box_<dyn Fn(&Vfs, &str) -> File + 'static>>, parse_name_func: Option<Box_<dyn Fn(&Vfs, &str) -> File + 'static>> ) -> bool
Registers uri_func
and parse_name_func
as the File
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 File
is requested with an URI containing scheme
(e.g. through
File::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 register_uri_scheme()
or unregister_uri_scheme()
.
When File::for_parse_name()
is called with a parse name obtained from such file,
parse_name_func
will be called to allow the File
to be created again. In
that case, it’s responsibility of parse_name_func
to make sure the parse
name matches what the custom File
implementation returned when
FileExt::parse_name()
was previously called. The implementation of
parse_name_func
should not be blocking, and must not call
register_uri_scheme()
or unregister_uri_scheme()
.
It’s an error to call this function twice with the same scheme. To unregister
a custom URI scheme, use 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.
sourcefn unregister_uri_scheme(&self, scheme: &str) -> bool
fn unregister_uri_scheme(&self, scheme: &str) -> bool
Unregisters the URI handler for scheme
previously registered with
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.