swift/ref: Implement decodeId in CGO layer
Instead of replicating the Go logic in Swift (and Java), wrap the
existing util.DecodeId in a CGO-accessible method.
Also renames Id.swift to Identifier.swift.
Closes vanadium/issues#1400
MultiPart: 1/2
Change-Id: I1877c609c49043fc9f20121d91de335a0a976bf3
diff --git a/services/syncbase/bridge/cgo/impl.go b/services/syncbase/bridge/cgo/impl.go
index 5bf9b52..cc36185 100644
--- a/services/syncbase/bridge/cgo/impl.go
+++ b/services/syncbase/bridge/cgo/impl.go
@@ -1086,6 +1086,16 @@
////////////////////////////////////////
// Misc utilities
+//export v23_syncbase_DecodeId
+func v23_syncbase_DecodeId(cName C.v23_syncbase_String, cDecoded *C.v23_syncbase_Id, cErr *C.v23_syncbase_VError) {
+ id, err := util.DecodeId(cName.extract())
+ if err != nil {
+ cErr.init(err)
+ } else {
+ cDecoded.init(id)
+ }
+}
+
//export v23_syncbase_Encode
func v23_syncbase_Encode(cName C.v23_syncbase_String, cEncoded *C.v23_syncbase_String) {
cEncoded.init(util.Encode(cName.extract()))