pub struct KVStore { /* 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_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.