| // Copyright 2022 Google LLC |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| package common |
| |
| const ( |
| // SelectAndIdentCost is the cost of an operation that accesses an identifier or performs a select. |
| SelectAndIdentCost = 1 |
| |
| // ConstCost is the cost of an operation that accesses a constant. |
| ConstCost = 0 |
| |
| // ListCreateBaseCost is the base cost of any operation that creates a new list. |
| ListCreateBaseCost = 10 |
| |
| // MapCreateBaseCost is the base cost of any operation that creates a new map. |
| MapCreateBaseCost = 30 |
| |
| // StructCreateBaseCost is the base cost of any operation that creates a new struct. |
| StructCreateBaseCost = 40 |
| |
| // StringTraversalCostFactor is multiplied to a length of a string when computing the cost of traversing the entire |
| // string once. |
| StringTraversalCostFactor = 0.1 |
| |
| // RegexStringLengthCostFactor is multiplied ot the length of a regex string pattern when computing the cost of |
| // applying the regex to a string of unit cost. |
| RegexStringLengthCostFactor = 0.25 |
| ) |