Struct fastly::object_store::ObjectStore
source · pub struct ObjectStore { /* private fields */ }
Expand description
Keys in the KV Store must follow the following rules:
- Keys can contain any sequence of valid Unicode characters, of length 1-1024 bytes when UTF-8 encoded.
- Keys cannot contain Carriage Return or Line Feed characters.
- Keys cannot start with
.well-known/acme-challenge/
. - Keys cannot be named
.
or..
.
Implementations§
source§impl KVStore
impl KVStore
sourcepub fn open(name: &str) -> Result<Option<Self>, KVStoreError>
pub fn open(name: &str) -> Result<Option<Self>, KVStoreError>
Open the KV Store with the given name.
If there is no store by that name, this returns Ok(None)
.
sourcepub fn lookup(&self, key: &str) -> Result<Option<Body>, KVStoreError>
pub fn lookup(&self, key: &str) -> Result<Option<Body>, KVStoreError>
Look up a value in the KV Store.
Returns Ok(Some(Body))
if the value is found, and Ok(None)
if the key was not found.
sourcepub fn lookup_async(
&self,
key: &str
) -> Result<Option<PendingObjectStoreLookupHandle>, KVStoreError>
pub fn lookup_async( &self, key: &str ) -> Result<Option<PendingObjectStoreLookupHandle>, KVStoreError>
Initiate async lookup of a value in the KV Store.
Returns Ok(Some(PendingObjectStoreLookupHandle))
lookup creation is successful.
sourcepub fn pending_lookup_wait(
&self,
pending_request_handle: PendingObjectStoreLookupHandle
) -> Result<Option<Body>, KVStoreError>
pub fn pending_lookup_wait( &self, pending_request_handle: PendingObjectStoreLookupHandle ) -> Result<Option<Body>, KVStoreError>
Look up a value in the KV Store.
Returns Ok(Some(Body))
if the value is found, and Ok(None)
if the key was not found.
sourcepub fn lookup_bytes(&self, key: &str) -> Result<Option<Vec<u8>>, KVStoreError>
pub fn lookup_bytes(&self, key: &str) -> Result<Option<Vec<u8>>, KVStoreError>
Look up a value in the KV Store, and return it as a byte vector.
Returns Ok(Some(Vec<u8>))
if the value is found, and Ok(None)
if the key was not found.
sourcepub fn lookup_str(&self, key: &str) -> Result<Option<String>, KVStoreError>
pub fn lookup_str(&self, key: &str) -> Result<Option<String>, KVStoreError>
Look up a value in the KV Store, and return it as a string.
Returns Ok(Some(String))
if the value is found, and Ok(None)
if the key was not found.
Panics
Panics if the value is not a valid UTF-8 string.
sourcepub fn insert(
&mut self,
key: &str,
value: impl Into<Body>
) -> Result<(), KVStoreError>
pub fn insert( &mut self, key: &str, value: impl Into<Body> ) -> Result<(), KVStoreError>
Insert a value into the KV Store.
If the store already contained a value for this key, it will be overwritten.
The value may be provided as any type that can be converted to Body
, such as &[u8]
,
Vec<u8>
, &str
, or String
.
Value sizes
The size of the value must be known when calling this method. In practice, that means that
if a Body
value contains an external request or response, it must be encoded with
Content-Length
rather than Transfer-Encoding: chunked
.
For the moment, this method will return StoreError::Unexpected(FastlyStatus::INVAL)
if the
value size is not known. This will be replaced by a more specific error value in a future
release.
sourcepub fn insert_async(
&self,
key: &str,
value: impl Into<Body>
) -> Result<Option<PendingObjectStoreInsertHandle>, KVStoreError>
pub fn insert_async( &self, key: &str, value: impl Into<Body> ) -> Result<Option<PendingObjectStoreInsertHandle>, KVStoreError>
Initiate async insert of a value into the KV Store.
Returns Ok(Some(PendingObjectStoreInsertHandle))
if insert creation is successful.
sourcepub fn pending_insert_wait(
&self,
pending_insert_handle: PendingObjectStoreInsertHandle
) -> Result<(), KVStoreError>
pub fn pending_insert_wait( &self, pending_insert_handle: PendingObjectStoreInsertHandle ) -> Result<(), KVStoreError>
Insert a value in the KV Store.
Returns Ok(())
if the value is found, and KVStoreError
if the key was not found.