feat(invocation): add WithArguments Option to set all arguments at once

This commit is contained in:
Steve Moyer
2024-11-26 14:39:10 -05:00
parent 943a318b26
commit ade2c7f858

View File

@@ -6,6 +6,7 @@ import (
"github.com/ipfs/go-cid" "github.com/ipfs/go-cid"
"github.com/ucan-wg/go-ucan/did" "github.com/ucan-wg/go-ucan/did"
"github.com/ucan-wg/go-ucan/pkg/args"
) )
// Option is a type that allows optional fields to be set during the // Option is a type that allows optional fields to be set during the
@@ -19,6 +20,22 @@ func WithArgument(key string, val any) Option {
} }
} }
// WithArguments merges the provided arguments into the Token's existing
// arguments.
//
// If duplicate keys are encountered, the new value is silently dropped
// without causing an error. Since duplicate keys can only be encountered
// due to previous calls to WithArgument or WithArguments, calling only
// this function to set the Token's arguments is equivalent to assigning
// the arguments to the Token.
func WithArguments(args *args.Args) Option {
return func(t *Token) error {
t.arguments.Include(args)
return nil
}
}
// WithAudience sets the Token's audience to the provided did.DID. // WithAudience sets the Token's audience to the provided did.DID.
// //
// If the provided did.DID is the same as the Token's subject, the // If the provided did.DID is the same as the Token's subject, the