Files
ucan/pkg/policy/literal/literal.go

56 lines
1.2 KiB
Go
Raw Normal View History

// Package literal holds a collection of functions to create IPLD types to use in policies, selector and args.
2024-08-19 23:16:36 +02:00
package literal
import (
2024-10-14 20:09:21 +02:00
"github.com/ipfs/go-cid"
2024-08-19 23:16:36 +02:00
"github.com/ipld/go-ipld-prime"
2024-10-14 20:09:21 +02:00
cidlink "github.com/ipld/go-ipld-prime/linking/cid"
2024-08-19 23:16:36 +02:00
"github.com/ipld/go-ipld-prime/node/basicnode"
)
2024-08-20 15:55:04 +02:00
func Bool(val bool) ipld.Node {
2024-08-19 23:16:36 +02:00
nb := basicnode.Prototype.Bool.NewBuilder()
nb.AssignBool(val)
2024-08-20 15:55:04 +02:00
return nb.Build()
2024-08-19 23:16:36 +02:00
}
2024-08-20 15:55:04 +02:00
func Int(val int64) ipld.Node {
nb := basicnode.Prototype.Int.NewBuilder()
nb.AssignInt(val)
return nb.Build()
2024-08-19 23:16:36 +02:00
}
2024-08-20 15:55:04 +02:00
func Float(val float64) ipld.Node {
nb := basicnode.Prototype.Float.NewBuilder()
nb.AssignFloat(val)
return nb.Build()
2024-08-19 23:16:36 +02:00
}
2024-08-20 15:55:04 +02:00
func String(val string) ipld.Node {
nb := basicnode.Prototype.String.NewBuilder()
nb.AssignString(val)
return nb.Build()
2024-08-19 23:16:36 +02:00
}
2024-08-20 15:55:04 +02:00
func Bytes(val []byte) ipld.Node {
nb := basicnode.Prototype.Bytes.NewBuilder()
nb.AssignBytes(val)
return nb.Build()
2024-08-19 23:16:36 +02:00
}
2024-10-14 20:09:21 +02:00
func Link(link ipld.Link) ipld.Node {
nb := basicnode.Prototype.Link.NewBuilder()
nb.AssignLink(link)
return nb.Build()
}
func LinkCid(cid cid.Cid) ipld.Node {
return Link(cidlink.Link{Cid: cid})
}
2024-08-20 15:55:04 +02:00
func Null() ipld.Node {
nb := basicnode.Prototype.Any.NewBuilder()
nb.AssignNull()
return nb.Build()
2024-08-19 23:16:36 +02:00
}