mirror of
https://github.com/hanzoai/go-openai-realtime.git
synced 2026-09-30 21:54:42 +00:00
40 lines
737 B
Go
40 lines
737 B
Go
package openairt
|
|
|
|
import (
|
|
"encoding/json"
|
|
"math"
|
|
)
|
|
|
|
const (
|
|
// Inf is the maximum value for an IntOrInf.
|
|
Inf IntOrInf = math.MaxInt
|
|
)
|
|
|
|
// IntOrInf is a type that can be either an int or "inf".
|
|
type IntOrInf int
|
|
|
|
// IsInf returns true if the value is "inf".
|
|
func (m IntOrInf) IsInf() bool {
|
|
return m == Inf
|
|
}
|
|
|
|
// MarshalJSON marshals the IntOrInf to JSON.
|
|
func (m IntOrInf) MarshalJSON() ([]byte, error) {
|
|
if m == Inf {
|
|
return []byte("\"inf\""), nil
|
|
}
|
|
return json.Marshal(int(m))
|
|
}
|
|
|
|
// UnmarshalJSON unmarshals the IntOrInf from JSON.
|
|
func (m *IntOrInf) UnmarshalJSON(data []byte) error {
|
|
if string(data) == "\"inf\"" {
|
|
*m = Inf
|
|
return nil
|
|
}
|
|
if len(data) == 0 {
|
|
return nil
|
|
}
|
|
return json.Unmarshal(data, (*int)(m))
|
|
}
|