Source File
number.go
Belonging Package
go.opentelemetry.io/otel/api/metric
package metric
import (
)
type NumberKind int8
func ( NumberKind) () Number {
switch {
case Int64NumberKind:
return NewInt64Number(0)
case Float64NumberKind:
return NewFloat64Number(0.)
default:
return Number(0)
}
}
func ( NumberKind) () Number {
switch {
case Int64NumberKind:
return NewInt64Number(math.MinInt64)
case Float64NumberKind:
return NewFloat64Number(-1. * math.MaxFloat64)
default:
return Number(0)
}
}
func ( NumberKind) () Number {
switch {
case Int64NumberKind:
return NewInt64Number(math.MaxInt64)
case Float64NumberKind:
return NewFloat64Number(math.MaxFloat64)
default:
return Number(0)
}
}
func ( int64) Number {
return NewNumberFromRaw(internal.Int64ToRaw())
}
func ( float64) Number {
return NewNumberFromRaw(internal.Float64ToRaw())
}
func ( NumberKind, Number) Number {
switch {
case Int64NumberKind:
return NewInt64Number(-.AsInt64())
case Float64NumberKind:
return NewFloat64Number(-.AsFloat64())
}
return
}
func ( *Number) () int64 {
return internal.RawToInt64(.AsRaw())
}
func ( *Number) () float64 {
return internal.RawToFloat64(.AsRaw())
}
func ( *Number) () Number {
return NewNumberFromRaw(.AsRawAtomic())
}
func ( *Number) () uint64 {
return atomic.LoadUint64(.AsRawPtr())
}
func ( *Number) () int64 {
return atomic.LoadInt64(.AsInt64Ptr())
}
func ( *Number) () float64 {
return internal.RawToFloat64(.AsRawAtomic())
}
func ( *Number) () *int64 {
return internal.RawPtrToInt64Ptr(.AsRawPtr())
}
func ( *Number) () *float64 {
return internal.RawPtrToFloat64Ptr(.AsRawPtr())
}
func ( *Number) ( NumberKind) int64 {
switch {
case Int64NumberKind:
return .AsInt64()
case Float64NumberKind:
return int64(.AsFloat64())
return 0
}
}
func ( *Number) ( NumberKind) float64 {
switch {
case Int64NumberKind:
return float64(.AsInt64())
case Float64NumberKind:
return .AsFloat64()
return 0
}
}
func ( *Number) ( int64) {
*.AsInt64Ptr() =
}
func ( *Number) ( float64) {
*.AsFloat64Ptr() =
}
func ( *Number) ( uint64) {
atomic.StoreUint64(.AsRawPtr(), )
}
func ( *Number) ( int64) {
atomic.StoreInt64(.AsInt64Ptr(), )
}
func ( *Number) ( float64) {
atomic.StoreUint64(.AsRawPtr(), internal.Float64ToRaw())
}
func ( *Number) ( float64) float64 {
:= .AsFloat64()
.SetFloat64()
return
}
func ( *Number) ( Number) Number {
return NewNumberFromRaw(atomic.SwapUint64(.AsRawPtr(), .AsRaw()))
}
func ( *Number) ( float64) float64 {
return internal.RawToFloat64(atomic.SwapUint64(.AsRawPtr(), internal.Float64ToRaw()))
}
func ( *Number) ( NumberKind, Number) {
switch {
case Int64NumberKind:
.AddInt64(.AsInt64())
case Float64NumberKind:
.AddFloat64(.AsFloat64())
}
}
func ( *Number) ( NumberKind, uint64) {
.AddNumber(, NewNumberFromRaw())
}
func ( *Number) ( int64) {
*.AsInt64Ptr() +=
}
func ( *Number) ( float64) {
*.AsFloat64Ptr() +=
}
func ( *Number) ( NumberKind, Number) {
switch {
case Int64NumberKind:
.AddInt64Atomic(.AsInt64())
case Float64NumberKind:
.AddFloat64Atomic(.AsFloat64())
}
}
func ( *Number) ( NumberKind, uint64) {
.AddNumberAtomic(, NewNumberFromRaw())
}
func ( *Number) ( int64) {
atomic.AddInt64(.AsInt64Ptr(), )
}
func ( *Number) ( float64) {
for {
:= .AsFloat64Atomic()
if .CompareAndSwapFloat64(, +) {
break
}
}
}
func ( *Number) (, int64) bool {
return atomic.CompareAndSwapInt64(.AsInt64Ptr(), , )
}
func ( *Number) (, float64) bool {
return atomic.CompareAndSwapUint64(.AsRawPtr(), internal.Float64ToRaw(), internal.Float64ToRaw())
}
func ( *Number) ( NumberKind, Number) int {
switch {
case Int64NumberKind:
return .CompareInt64(.AsInt64())
case Float64NumberKind:
return .CompareFloat64(.AsFloat64())
return 0
}
}
func ( *Number) ( NumberKind, uint64) int {
return .CompareNumber(, NewNumberFromRaw())
}
func ( *Number) ( NumberKind) bool {
return .compareWithZero() > 0
}
func ( *Number) ( NumberKind) bool {
return .compareWithZero() < 0
}
func ( *Number) ( NumberKind) bool {
return .compareWithZero() == 0
}
func ( *Number) ( NumberKind) string {
switch {
case Int64NumberKind:
return fmt.Sprintf("%d", .AsInt64())
case Float64NumberKind:
return fmt.Sprintf("%f", .AsFloat64())
default:
return ""
}
}
func ( *Number) ( NumberKind) interface{} {
switch {
case Int64NumberKind:
return .AsInt64()
case Float64NumberKind:
return .AsFloat64()
default:
return math.NaN()
}
}
func ( *Number) ( NumberKind) int {
switch {
case Int64NumberKind:
return .CompareInt64(0)
case Float64NumberKind:
return .CompareFloat64(0.)
return 0
}
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin 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. |