func scanMessage(a scanAble) (uint64, *structs.MessageStruct, error) { var messageIDT, receiverConstantPubKeyT, signerPubT string var oneTimeT, syncT, hiddenT int var id uint64 s := new(structs.MessageStruct) if err := a.Scan( &id, &s.Counter, &messageIDT, &receiverConstantPubKeyT, &signerPubT, &s.PostTime, &s.ExpireTime, &s.ExpireRequest, &s.Distance, &oneTimeT, &syncT, &hiddenT, ); err != nil { return 0, nil, err } s.MessageID = *sliceToMessageID(fromHex(messageIDT)) s.ReceiverConstantPubKey = *sliceToCurve25519Key(fromHex(receiverConstantPubKeyT)) s.SignerPub = *sliceToEDPublicKey(fromHex(signerPubT)) s.OneTime = intToBool(oneTimeT) s.Sync = intToBool(syncT) s.Hidden = intToBool(hiddenT) return id, s, nil }