Files
chatservice_concept/vendor/github.com/gocql/gocql/serialization/boolean/marshal.go
2025-05-17 21:45:18 -04:00

25 lines
547 B
Go

package boolean
import (
"reflect"
)
func Marshal(value interface{}) ([]byte, error) {
switch v := value.(type) {
case nil:
return nil, nil
case bool:
return EncBool(v)
case *bool:
return EncBoolR(v)
default:
// Custom types (type MyBool bool) can be serialized only via `reflect` package.
// Later, when generic-based serialization is introduced we can do that via generics.
rv := reflect.TypeOf(value)
if rv.Kind() != reflect.Ptr {
return EncReflect(reflect.ValueOf(v))
}
return EncReflectR(reflect.ValueOf(v))
}
}