/* Copyright IBM Corp. All Rights Reserved. SPDX-License-Identifier: Apache-2.0 */ package policies import ( "strings" cb "github.com/hyperledger/fabric-protos-go/common" "github.com/pkg/errors" ) func ImplicitMetaFromString(input string) (*cb.ImplicitMetaPolicy, error) { args := strings.Split(input, " ") if len(args) != 2 { return nil, errors.Errorf("expected two space separated tokens, but got %d", len(args)) } res := &cb.ImplicitMetaPolicy{ SubPolicy: args[1], } switch args[0] { case cb.ImplicitMetaPolicy_ANY.String(): res.Rule = cb.ImplicitMetaPolicy_ANY case cb.ImplicitMetaPolicy_ALL.String(): res.Rule = cb.ImplicitMetaPolicy_ALL case cb.ImplicitMetaPolicy_MAJORITY.String(): res.Rule = cb.ImplicitMetaPolicy_MAJORITY default: return nil, errors.Errorf("unknown rule type '%s', expected ALL, ANY, or MAJORITY", args[0]) } return res, nil }