3 // Directive: +gen on SignatureInner
8 "github.com/tendermint/go-wire/data"
11 // Auto-generated adapters for happily unmarshaling interfaces
13 // Copyright (c) 2017 Ethan Frey (ethan.frey@tendermint.com)
15 type Signature struct {
16 SignatureInner "json:\"unwrap\""
19 var SignatureMapper = data.NewMapper(Signature{})
21 func (h Signature) MarshalJSON() ([]byte, error) {
22 return SignatureMapper.ToJSON(h.SignatureInner)
25 func (h *Signature) UnmarshalJSON(data []byte) (err error) {
26 parsed, err := SignatureMapper.FromJSON(data)
27 if err == nil && parsed != nil {
28 h.SignatureInner = parsed.(SignatureInner)
33 // Unwrap recovers the concrete interface safely (regardless of levels of embeds)
34 func (h Signature) Unwrap() SignatureInner {
35 hi := h.SignatureInner
36 for wrap, ok := hi.(Signature); ok; wrap, ok = hi.(Signature) {
37 hi = wrap.SignatureInner
42 /*** below are bindings for each implementation ***/
45 SignatureMapper.RegisterImplementation(SignatureEd25519{}, "ed25519", 0x1)
48 func (hi SignatureEd25519) Wrap() Signature {