useurl::Url;usecrate::errors::Result;/// A `Provider` is responsible with interfacing with the environment for IO
////// This isolates other libraries from the File System or IO.
pubtraitProvider: Sync + Send {/// Take a URL and uses it to determine a url where actual content can be read from
/// using some provider specific logic. This may involve looking for default files in a
/// directory (a file provider) or a server path (an http provider), or it may involve
/// translating a library URL into a real on where content can be found.
////// # Errors
////// Returns an error if the `Provider` cannot determine the "real `Url`" (where the content
/// reside) corresponding to this url
///fnresolve_url(&self,
url:&Url,
default_name:&str,
extensions:&[&str],
)->Result<(Url, Option<Url>)>;/// Fetches content from a URL. It resolves the URL internally before attempting to
/// fetch actual content
////// # Errors
////// Returns an error if the selected `Provider` cannot read the contents from the provided `Url`
fnget_contents(&self, url:&Url)->Result<Vec<u8>>;}