Found
pub struct Found { /* private fields */ }A cached item returned by a lookup.
This type can be used to get the cached item as a stream, and to retrieve its metadata, such as its size or whether it's stale.
Methods
age
View sourcefn age(&self) -> DurationThe current age of the cached item.
This can be greater than max age when the item is stale.
Parameters
- self: &Self
Returns
hits
View sourcefn hits(&self) -> u64Determines the number of cache hits to this cached item.
Note: this hit count only reflects the view of the server that supplied the cached item. Due to clustering, this count may vary between potentially many servers within the data center where the item is cached. See the clustering documentation for details, though note that the exact caching architecture of Compute is different from VCL services.
Parameters
- self: &Self
Returns
is_stale
View sourcefn is_stale(&self) -> boolDetermines whether the cached item is stale.
A cached item is stale if its age is greater than its max-age period.
Parameters
- self: &Self
Returns
is_usable
View sourcefn is_usable(&self) -> boolDetermines whether the cached item is usable.
A cached item is usable if its age is less than the sum of the max-age and stale-while-revalidate periods.
Parameters
- self: &Self
Returns
known_length
View sourceThe size in bytes of the cached item, if known.
The length of the cached item may be unknown if the item is currently being streamed into the cache without a fixed length.
Parameters
- self: &Self
Returns
max_age
View sourcefn max_age(&self) -> DurationHow long the cached item is/was considered fresh, starting from the start of the cached item's lifetime.
Note that this is the maximum possible "fresh" age, not the freshness time remaining; see remaining_ttl for that.
Parameters
- self: &Self
Returns
remaining_ttl
View sourcefn remaining_ttl(&self) -> DurationReturns the remaining TTL: how long this cached item has left before it is considered stale. Zero if the cached item is stale.
Note: this reports the remaining freshness period; max age reports the original / intitial TTL.
Parameters
- self: &Self
Returns
stale_while_revalidate
View sourcefn stale_while_revalidate(&self) -> DurationThe time during which a stale item can still be used, while it is being revalidated.
Parameters
- self: &Self
Returns
to_stream
View sourceRetrieves the entire cached item as a Body that can be read in a streaming fashion.
Only one stream can be active at a time for a given
Found. The stream must be fully consumed (read) before a new stream
can be created from the same Found.
Err(CacheError::InvalidOperation) will be returned if a stream is
already active for this Found. This restriction may be lifted in future
releases.
Parameters
- self: &Self
Returns
to_stream_from_range
View sourceRetrieves a range of bytes from the cached item as a Body that can be read in a streaming fashion.
from and to will determine which bytes are returned:
- If
fromis provided andtois not provided, the stream will begin at thefrombyte and continue to the end of the body. - If
fromandtoare both provided, only the rangefrom..=towill be provided. Note, both ends are inclusive. - If
tois provided butfromis not provided, the lasttobytes of the body will be provided.
Inherently invalid ranges
If to is strictly before from, this call returns a error immediately.
(to == from is acceptable - the bounds are inclusive, so this addresses a single byte.)
Known size
The size of a cached item is known if it has completed streaming (StreamingBody::finish)
or if the expected length was provided at insert time
(TransactionInsertBuilder::known_length and similar).
If the size of the cached item is known, the range is respected only if the range is valid
(to is before from, and both ranges are less than or equal to the size of the item).
Otherwise, no error is returned, and the entire body is returned instead.
Unknown size
The size of a cached item may not be known (if known_length was not provided and the body
is still being streamed). If the size of the cached item is unknown,
by default, the range is ignored, and the entire cached item is returned.
This behavior can be overridden by calling TransactionLookupBuilder::always_use_requested_range.
If provided, this call will block until the start of the interval is found,
then begin streaming content. The Body will generate a read error if the end of the range
is not reached.
Re-reading body
Only one stream can be active at a time for a given
Found. The stream must be fully consumed (read) before a new stream
can be created from the same Found.
Err(CacheError::InvalidOperation) will be returned if a stream is
already active for this Found. This restriction may be lifted in future
releases.
Parameters
Returns
user_metadata
View sourcefn user_metadata(&self) -> BytesThe user-controlled metadata associated with the cached item.
Parameters
- self: &Self
Returns