commit 5785687bc28cfbf6725a2ecb56c0c78fd54f4339
parent 87d4b13b28dd8ef61a16ae8ef7f6733414904ed8
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Sun, 15 Jan 2023 21:09:07 -0800
generic type parser
Diffstat:
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/pkg/database/utils/utils.go b/pkg/database/utils/utils.go
@@ -57,30 +57,33 @@ func DoParsePmDisplayMode(v string) database.PmDisplayMode {
}
}
-func ParseUserID(v string) (database.UserID, error) {
+func Parse[T ~int64](v string) (out T, err error) {
p, err := utils.ParseInt64(v)
if err != nil {
- return 0, err
+ return out, err
}
- return database.UserID(p), nil
+ return T(p), nil
}
-func DoParseUserID(v string) (out database.UserID) {
- out, _ = ParseUserID(v)
+func DoParse[T ~int64](v string) (out T) {
+ out, _ = Parse[T](v)
return
}
+func ParseUserID(v string) (database.UserID, error) {
+ return Parse[database.UserID](v)
+}
+
+func DoParseUserID(v string) (out database.UserID) {
+ return DoParse[database.UserID](v)
+}
+
func ParseRoomID(v string) (database.RoomID, error) {
- p, err := utils.ParseInt64(v)
- if err != nil {
- return 0, err
- }
- return database.RoomID(p), nil
+ return Parse[database.RoomID](v)
}
func DoParseRoomID(v string) (out database.RoomID) {
- out, _ = ParseRoomID(v)
- return
+ return DoParse[database.RoomID](v)
}
func Kick(kicked, kickedBy database.User, purge, silent bool) error {