mirror of
https://github.com/open-policy-agent/opa.git
synced 2026-08-27 02:34:52 -06:00
eb8166fb1c
This change removes the 1-2 heap allocations previously made per call to the `object.get` built-in function. Also: - Slightly tweak `builtins.<Type>Operand` functions to have them pass the inlining threshold score of 80 — they would previously all score at 81! Signed-off-by: Anders Eknert <anders.eknert@apple.com>
26 lines
732 B
Go
26 lines
732 B
Go
// Copyright 2020 The OPA Authors. All rights reserved.
|
|
// Use of this source code is governed by an Apache2
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Package ref implements internal helpers for references
|
|
package ref
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/open-policy-agent/opa/v1/ast"
|
|
"github.com/open-policy-agent/opa/v1/storage"
|
|
"github.com/open-policy-agent/opa/v1/util"
|
|
)
|
|
|
|
// ParseDataPath returns a ref from the slash separated path s rooted at data.
|
|
// All path segments are treated as identifier strings.
|
|
func ParseDataPath(s string) (ast.Ref, error) {
|
|
path, ok := storage.ParsePath(util.WithPrefix(s, "/"))
|
|
if !ok {
|
|
return nil, errors.New("invalid path")
|
|
}
|
|
|
|
return path.Ref(ast.DefaultRootDocument), nil
|
|
}
|