open-consul/internal/tools/proto-gen-rpc-glue/e2e/consul/agent/structs/structs.go

53 lines
1.3 KiB
Go

package structs
import (
"time"
"google.golang.org/protobuf/types/known/durationpb"
"google.golang.org/protobuf/types/known/timestamppb"
)
type QueryOptions struct {
// NOTE: fields omitted from upstream if not necessary for compilation check
MinQueryIndex uint64
MaxQueryTime time.Duration
}
func (q QueryOptions) HasTimedOut(start time.Time, rpcHoldTimeout, maxQueryTime, defaultQueryTime time.Duration) (bool, error) {
// NOTE: body was omitted from upstream; we only need the signature to verify it compiles
return false, nil
}
type RPCInfo interface {
// NOTE: methods omitted from upstream if not necessary for compilation check
}
type QueryBackend int
const (
QueryBackendBlocking QueryBackend = iota
QueryBackendStreaming
)
func DurationToProto(d time.Duration) *durationpb.Duration {
return durationpb.New(d)
}
func DurationFromProto(d *durationpb.Duration) time.Duration {
return d.AsDuration()
}
func TimeFromProto(s *timestamppb.Timestamp) time.Time {
return s.AsTime()
}
func TimeToProto(s time.Time) *timestamppb.Timestamp {
return timestamppb.New(s)
}
// IsZeroProtoTime returns true if the time is the minimum protobuf timestamp
// (the Unix epoch).
func IsZeroProtoTime(t *timestamppb.Timestamp) bool {
return t.Seconds == 0 && t.Nanos == 0
}