pub trait FileSource:
Send
+ Sync
+ 'static {
// Required methods
fn can_request(&self, request: &ResourceRequest) -> bool;
fn request(
&self,
request: ResourceRequest,
responder: Responder,
) -> RequestHandle;
// Provided method
fn forward(
&self,
request: ResourceRequest,
response: Response,
completion: ForwardCompletion,
) { ... }
}Expand description
A custom resource provider registered for one FileSourceType.
Required Methods§
Sourcefn can_request(&self, request: &ResourceRequest) -> bool
fn can_request(&self, request: &ResourceRequest) -> bool
Whether this source can serve request.
Sourcefn request(
&self,
request: ResourceRequest,
responder: Responder,
) -> RequestHandle
fn request( &self, request: ResourceRequest, responder: Responder, ) -> RequestHandle
Begin serving request.
Deliver the Response through responder — inline, or later from
another thread. Return RequestHandle::Done when completed inline, or
RequestHandle::pending with a cancel hook while work is in flight.
Provided Methods§
Sourcefn forward(
&self,
request: ResourceRequest,
response: Response,
completion: ForwardCompletion,
)
fn forward( &self, request: ResourceRequest, response: Response, completion: ForwardCompletion, )
Store response for request (cache write).
You only need to implement this when this source is registered as
FileSourceType::Database. MapLibre
Native calls this on database sources to forward responses fetched from
another source into the cache.
completion when the write is done. The default ignores writes and
completes immediately.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".