blob: 4292cfe5e0e5297ebbad3b37255f2fdb8e766a8f [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package test_service
// KeyPageResult is a page of 10 keys.
type KeyPageResult [10]string
// A Cache service mimics the memcache interface.
type Cache interface {
// Set sets a value for a key.
Set(key string, value any) error
// Get returns the value for a key. If the value is not found, returns
// a not found error.
Get(key string) (any | error)
// Same as Get, but casts the return argument to an byte.
GetAsByte(key string) (byte | error)
// Same as Get, but casts the return argument to an int32.
GetAsInt32(key string) (int32 | error)
// Same as Get, but casts the return argument to an int64.
GetAsInt64(key string) (int64 | error)
// Same as Get, but casts the return argument to an uint32.
GetAsUint32(key string) (uint32 | error)
// Same as Get, but casts the return argument to an uint64.
GetAsUint64(key string) (uint64 | error)
// Same as Get, but casts the return argument to an float32.
GetAsFloat32(key string) (float32 | error)
// Same as Get, but casts the return argument to an float64.
GetAsFloat64(key string) (float64 | error)
// Same as Get, but casts the return argument to a string.
GetAsString(key string) (string | error)
// Same as Get, but casts the return argument to a bool.
GetAsBool(key string) (bool | error)
// Same as Get, but casts the return argument to an error.
GetAsError(key string) (error | error)
// AsMap returns the full contents of the cache as a map.
AsMap() (map[string]any | error)
// KeyValuePairs returns the full contents of the cache as a slice of pairs.
KeyValuePairs() ([]KeyValuePair | error)
// MostRecentSet returns the key and value and the timestamp for the most
// recent set operation
// TODO(bprosnitz) support type types and change time to native time type
MostRecentSet() (value KeyValuePair, time int64 | error)
// KeyPage indexes into the keys (in alphanumerically sorted order) and
// returns the indexth page of 10 keys.
KeyPage(index int64) (KeyPageResult | error)
// Size returns the total number of entries in the cache.
Size() (int64 | error)
// MultiGet sets up a stream that allows fetching multiple keys.
MultiGet() stream<string, any> error
}
// KeyValuePair is a representation of a cached key and value pair.
type KeyValuePair struct {
Key string
Value any
}