dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit 5785687bc28cfbf6725a2ecb56c0c78fd54f4339
parent 87d4b13b28dd8ef61a16ae8ef7f6733414904ed8
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Sun, 15 Jan 2023 21:09:07 -0800

generic type parser

Diffstat:
Mpkg/database/utils/utils.go | 27+++++++++++++++------------
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 {