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}