aboutsummaryrefslogtreecommitdiff
path: root/forged/internal/common/bare/varint.go
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-08-12 11:01:07 +0800
committerRunxi Yu <me@runxiyu.org>2025-09-26 17:25:37 +0800
commite238ccb06b05e88ec323ca95ad4600bd79743372 (patch)
tree46f82d4d0f4ec43e94dcde5677de1ba857862638 /forged/internal/common/bare/varint.go
parentRemove forge-specific functions from misc (diff)
downloadforge-e238ccb06b05e88ec323ca95ad4600bd79743372.tar.gz
forge-e238ccb06b05e88ec323ca95ad4600bd79743372.tar.zst
forge-e238ccb06b05e88ec323ca95ad4600bd79743372.zip
RefactorHEADmaster
Diffstat (limited to 'forged/internal/common/bare/varint.go')
-rw-r--r--forged/internal/common/bare/varint.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/forged/internal/common/bare/varint.go b/forged/internal/common/bare/varint.go
new file mode 100644
index 0000000..a185ac8
--- /dev/null
+++ b/forged/internal/common/bare/varint.go
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: Apache-2.0
+// SPDX-FileCopyrightText: Copyright (c) 2025 Drew Devault <https://drewdevault.com>
+
+package bare
+
+import (
+ "reflect"
+)
+
+// Int is a variable-length encoded signed integer.
+type Int int64
+
+// Uint is a variable-length encoded unsigned integer.
+type Uint uint64
+
+var (
+ intType = reflect.TypeOf(Int(0))
+ uintType = reflect.TypeOf(Uint(0))
+)
+
+func getIntKind(t reflect.Type) reflect.Kind {
+ switch t {
+ case intType:
+ return reflect.Int
+ case uintType:
+ return reflect.Uint
+ default:
+ return t.Kind()
+ }
+}