| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- {%- macro keyval_method(type) -%}
- {%- if type == "string" -%}
- String
- {%- elif type == "string[]" -%}
- StringSlice
- {%- elif type == "int" -%}
- Int
- {%- elif type == "int[]" -%}
- IntSlice
- {%- elif type == "double" -%}
- Float64
- {%- elif type == "double[]" -%}
- Float64Slice
- {%- elif type == "boolean" -%}
- Bool
- {%- elif type == "boolean[]" -%}
- BoolSlice
- {%- endif -%}
- {%- endmacro -%}
- {%- macro to_go_attr_type(type, val) -%}
- {{keyval_method(type)}}({% if type == "string" %}"{{val}}"{% else %}{{val}}{% endif %})
- {%- endmacro -%}
- {%- macro to_go_name(fqn) -%}
- {{fqn | replace(".", " ") | replace("_", " ") | title | replace(" ", "")}}
- {%- endmacro -%}
- {%- macro it_reps(brief) -%}
- It represents {% if brief[:2] == "A " or brief[:3] == "An " or brief[:4] == "The " -%}
- {{ brief[0]|lower }}{{ brief[1:] }}
- {%- else -%}
- the {{ brief[0]|lower }}{{ brief[1:] }}
- {%- endif -%}
- {%- endmacro -%}
- {%- macro keydoc(attr) -%}
- {{ to_go_name(attr.fqn) }}Key is the attribute Key conforming to the "{{ attr.fqn }}" semantic conventions. {{ it_reps(attr.brief) }}
- {%- endmacro -%}
- {%- macro keydetails(attr) -%}
- {%- if attr.attr_type is string %}
- Type: {{ attr.attr_type }}
- {%- else %}
- Type: Enum
- {%- endif %}
- {%- if attr.requirement_level == RequirementLevel.REQUIRED %}
- RequirementLevel: Required
- {%- elif attr.requirement_level == RequirementLevel.CONDITIONALLY_REQUIRED %}
- RequirementLevel: ConditionallyRequired
- {%- if attr.requirement_level_msg != "" %} ({{ attr.requirement_level_msg }}){%- endif %}
- {%- elif attr.requirement_level == RequirementLevel.RECOMMENDED %}
- RequirementLevel: Recommended
- {%- if attr.requirement_level_msg != "" %} ({{ attr.requirement_level_msg }}){%- endif %}
- {%- else %}
- RequirementLevel: Optional
- {%- endif %}
- {{ attr.stability | replace("Level.", ": ") | capitalize }}
- {%- if attr.deprecated != None %}
- Deprecated: {{ attr.deprecated }}
- {%- endif %}
- {%- if attr.examples is iterable %}
- Examples: {{ attr.examples | pprint | trim("[]") }}
- {%- endif %}
- {%- if attr.note %}
- Note: {{ attr.note }}
- {%- endif %}
- {%- endmacro -%}
- {%- macro fndoc(attr) -%}
- // {{ to_go_name(attr.fqn) }} returns an attribute KeyValue conforming to the "{{ attr.fqn }}" semantic conventions. {{ it_reps(attr.brief) }}
- {%- endmacro -%}
- {%- macro to_go_func(type, name) -%}
- {%- if type == "string" -%}
- func {{name}}(val string) attribute.KeyValue {
- {%- elif type == "string[]" -%}
- func {{name}}(val ...string) attribute.KeyValue {
- {%- elif type == "int" -%}
- func {{name}}(val int) attribute.KeyValue {
- {%- elif type == "int[]" -%}
- func {{name}}(val ...int) attribute.KeyValue {
- {%- elif type == "double" -%}
- func {{name}}(val float64) attribute.KeyValue {
- {%- elif type == "double[]" -%}
- func {{name}}(val ...float64) attribute.KeyValue {
- {%- elif type == "boolean" -%}
- func {{name}}(val bool) attribute.KeyValue {
- {%- elif type == "boolean[]" -%}
- func {{name}}(val ...bool) attribute.KeyValue {
- {%- endif -%}
- return {{name}}Key.{{keyval_method(type)}}(val)
- }
- {%- endmacro -%}
- {%- macro sentence_case(text) -%}
- {{ text[0]|upper}}{{text[1:] }}
- {%- endmacro -%}
- // Copyright The OpenTelemetry Authors
- //
- // 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.
- // Code generated from semantic convention specification. DO NOT EDIT.
- package semconv // import [[IMPORTPATH]]
- import "go.opentelemetry.io/otel/attribute"
- {% for semconv in semconvs -%}
- {%- if semconvs[semconv].attributes | rejectattr("ref") | selectattr("is_local") | sort(attribute=fqn) | length > 0 -%}
- // {{ sentence_case(semconvs[semconv].brief | replace("This document defines ", "")) | wordwrap(76, break_long_words=false, break_on_hyphens=false, wrapstring="\n// ") }}
- const (
- {%- for attr in semconvs[semconv].attributes if attr.is_local and not attr.ref %}
- // {{ keydoc(attr) | wordwrap(72, break_long_words=false, break_on_hyphens=false, wrapstring="\n\t// ") }}
- // {{ keydetails(attr) | wordwrap(72, break_long_words=false, break_on_hyphens=false, wrapstring="\n\t// ") }}
- {{to_go_name(attr.fqn)}}Key = attribute.Key("{{attr.fqn}}")
- {% endfor -%}
- )
- {%- for attr in semconvs[semconv].attributes if attr.is_local and not attr.ref -%}
- {%- if attr.attr_type is not string %}
- var (
- {%- for val in attr.attr_type.members %}
- // {{ val.brief | to_doc_brief }}
- {{to_go_name("{}.{}".format(attr.fqn, val.member_id))}} = {{to_go_name(attr.fqn)}}Key.{{to_go_attr_type(attr.attr_type.enum_type, val.value)}}
- {%- endfor %}
- )
- {%- endif -%}
- {%- endfor %}
- {%- for attr in semconvs[semconv].attributes if attr.is_local and not attr.ref -%}
- {%- if attr.attr_type is string %}
- {{ fndoc(attr) | wordwrap(76, break_long_words=false, break_on_hyphens=false, wrapstring="\n// ") }}
- {{to_go_func(attr.attr_type, to_go_name(attr.fqn))}}
- {%- endif -%}
- {%- endfor %}
- {% endif %}
- {% endfor -%}
|