stable structures
This section is a work in progress.
Examples:
- audio_recorder
- ethereum_json_rpc
- func_types
- http_counter
- inline_types
- persistent-storage
- pre_and_post_upgrade
- stable_structures
import {
bool,
Canister,
nat64,
nat8,
Opt,
query,
StableBTreeMap,
text,
Tuple,
update,
Vec
} from 'azle/experimental';
const Key = nat8;
type Key = typeof Key.tsType;
const Value = text;
type Value = typeof Value.tsType;
let map = StableBTreeMap<Key, Value>(0);
export default Canister({
containsKey: query([Key], bool, (key) => {
return map.containsKey(key);
}),
get: query([Key], Opt(Value), (key) => {
return map.get(key);
}),
insert: update([Key, Value], Opt(Value), (key, value) => {
return map.insert(key, value);
}),
isEmpty: query([], bool, () => {
return map.isEmpty();
}),
items: query([], Vec(Tuple(Key, Value)), () => {
return map.items();
}),
keys: query([], Vec(Key), () => {
return Uint8Array.from(map.keys());
}),
len: query([], nat64, () => {
return map.len();
}),
remove: update([Key], Opt(Value), (key) => {
return map.remove(key);
}),
values: query([], Vec(Value), () => {
return map.values();
})
});