feat(ksuid): add BinExpr, flexible parsers, and expression helpers

Adds ParseStringKSUIDAny, ParseBinaryKSUIDAny, BinaryKSUID.BinExpr, and
ExprStringKSUIDs for portal-compatible KSUID handling at API boundaries.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-29 18:26:17 -07:00
parent 689e022e3e
commit fa4efb38f7
7 changed files with 161 additions and 2 deletions
+9
View File
@@ -5,6 +5,7 @@ import (
"fmt"
"io"
"github.com/go-jet/jet/v2/mysql"
"github.com/segmentio/ksuid"
)
@@ -43,6 +44,14 @@ func ParseBinaryKSUID(b []byte) (BinaryKSUID, error) {
return BinaryKSUID{KSUID: id}, nil
}
// BinExpr returns a Jet string expression for binary-encoded IN clauses.
func (b BinaryKSUID) BinExpr() mysql.StringExpression {
if b.IsNil() {
return mysql.StringExp(mysql.NULL)
}
return mysql.String(string(b.Bytes()))
}
// AsStringKSUID returns a StringKSUID view of the same identifier.
func (b BinaryKSUID) AsStringKSUID() StringKSUID {
return StringKSUID{KSUID: b.KSUID}