Source File
codes.go
Belonging Package
go.opentelemetry.io/otel/codes
// 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.package codes // import "go.opentelemetry.io/otel/codes"import ()const (// Unset is the default status code.Unset Code = 0// Error indicates the operation contains an error.//// NOTE: The error code in OTLP is 2.// The value of this enum is only relevant to the internals// of the Go SDK.Error Code = 1// Ok indicates operation has been validated by an Application developers// or Operator to have completed successfully, or contain no error.//// NOTE: The Ok code in OTLP is 1.// The value of this enum is only relevant to the internals// of the Go SDK.Ok Code = 2maxCode = 3)// Code is an 32-bit representation of a status state.type Code uint32var codeToStr = map[Code]string{Unset: "Unset",Error: "Error",Ok: "Ok",}var strToCode = map[string]Code{`"Unset"`: Unset,`"Error"`: Error,`"Ok"`: Ok,}// String returns the Code as a string.func ( Code) () string {return codeToStr[]}// UnmarshalJSON unmarshals b into the Code.//// This is based on the functionality in the gRPC codes package:// https://github.com/grpc/grpc-go/blob/bb64fee312b46ebee26be43364a7a966033521b1/codes/codes.go#L218-L244func ( *Code) ( []byte) error {// From json.Unmarshaler: By convention, to approximate the behavior of// Unmarshal itself, Unmarshalers implement UnmarshalJSON([]byte("null")) as// a no-op.if string() == "null" {return nil}if == nil {return fmt.Errorf("nil receiver passed to UnmarshalJSON")}var interface{}if := json.Unmarshal(, &); != nil {return}switch .(type) {case string:if , := strToCode[string()]; {* =return nil}return fmt.Errorf("invalid code: %q", string())case float64:if , := strconv.ParseUint(string(), 10, 32); == nil {if >= maxCode {return fmt.Errorf("invalid code: %q", )}* = Code()return nil}return fmt.Errorf("invalid code: %q", string())default:return fmt.Errorf("invalid code: %q", string())}}// MarshalJSON returns c as the JSON encoding of c.func ( *Code) () ([]byte, error) {if == nil {return []byte("null"), nil}, := codeToStr[*]if ! {return nil, fmt.Errorf("invalid code: %d", *)}return []byte(fmt.Sprintf("%q", )), nil}
![]() |
The pages are generated with Golds v0.6.7. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |