func lattigo_marshalBinaryBootstrapParameters()

in src/gowrapper/ckks/marshaler.go [63:79]


func lattigo_marshalBinaryBootstrapParameters(paramsHandle Handle9, callback C.streamWriter, stream *C.void) {
	var params *ckks.BootstrappingParameters
	params = getStoredBootstrappingParameters(paramsHandle)

	// https://kpbird.medium.com/golang-serialize-struct-using-gob-part-2-f6134dd4f22c
	var buf bytes.Buffer
	var encoder *gob.Encoder = gob.NewEncoder(&buf)
	if err := encoder.Encode(*params); err != nil {
		panic(err)
	}

	var data []byte = buf.Bytes()

	if len(data) > 0 {
		C.callStreamWriter(callback, unsafe.Pointer(stream), unsafe.Pointer(&data[0]), C.uint64_t(len(data)))
	}
}