package bloat import ( "errors" "fmt" ) func (b *Bloat[T]) Read(packed []byte, author Bloat[T]) (T, error) { var final T decrypted, err := b.decrypt(packed) // our own key if err != nil { fmt.Println(err) return final, err } body, verified, err := author.verify(decrypted) // author's key if err != nil { return final, err } if !verified { return final, errors.New("not verified") } final, err = b.unmarshal(body) return final, err }