summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-25 08:26:25 -0500
committerJeff Carr <[email protected]>2025-10-25 08:26:25 -0500
commit3dff430dc8205ef4668b034459c38d4400eb1226 (patch)
tree937dd49561d9ea6557a1c3347923c0ad3e6055f0
parent395aa701c03a4bd6d01436ce17cee489ee6a98e3 (diff)
handle proto duration values
-rw-r--r--duration.go12
1 files changed, 11 insertions, 1 deletions
diff --git a/duration.go b/duration.go
index 96722c9..ea25d47 100644
--- a/duration.go
+++ b/duration.go
@@ -4,6 +4,7 @@ import (
"errors"
"time"
+ "google.golang.org/protobuf/types/known/durationpb"
"google.golang.org/protobuf/types/known/timestamppb"
)
@@ -31,6 +32,12 @@ func DurationCheck(maybeTime any) (time.Duration, error) {
case time.Time:
// If the type is time.Time, 'v' is now a time.Time variable.
d = time.Since(v)
+ case time.Duration:
+ // If the type is time.Time, 'v' is now a time.Time variable.
+ d = v
+ case *time.Duration:
+ // If the type is time.Time, 'v' is now a time.Time variable.
+ d = *v
case string:
// The type is string, so 'v' is a string variable.
// t, err = doTimeString(v)
@@ -44,7 +51,10 @@ func DurationCheck(maybeTime any) (time.Duration, error) {
} else {
err = errors.New("pb time invalid")
}
-
+ case *durationpb.Duration:
+ d = v.AsDuration()
+ case durationpb.Duration:
+ d = v.AsDuration()
case timestamppb.Timestamp:
// Handle the less common case of a value type instead of a pointer.
if v.IsValid() {