ingester.gno
0.80 Kb ยท 35 lines
1package single
2
3import (
4 "gno.land/p/demo/gnorkle/gnorkle"
5 "gno.land/p/demo/gnorkle/ingester"
6)
7
8// ValueIngester is an ingester that ingests a single value.
9type ValueIngester struct {
10 value string
11}
12
13// Type returns the type of the ingester.
14func (i *ValueIngester) Type() ingester.Type {
15 return ingester.TypeSingle
16}
17
18// Ingest ingests a value provided by the given agent address.
19func (i *ValueIngester) Ingest(value, providerAddress string) (bool, error) {
20 if i == nil {
21 return false, ingester.ErrUndefined
22 }
23
24 i.value = value
25 return true, nil
26}
27
28// CommitValue commits the ingested value to the given storage instance.
29func (i *ValueIngester) CommitValue(valueStorer gnorkle.Storage, providerAddress string) error {
30 if i == nil {
31 return ingester.ErrUndefined
32 }
33
34 return valueStorer.Put(i.value)
35}