|
|
- // Generated by: main
- // TypeWriter: wrapper
- // Directive: +gen on SignatureInner
-
- package crypto
-
- import (
- "github.com/tendermint/go-wire/data"
- )
-
- // Auto-generated adapters for happily unmarshaling interfaces
- // Apache License 2.0
- // Copyright (c) 2017 Ethan Frey (ethan.frey@tendermint.com)
-
- type Signature struct {
- SignatureInner "json:\"unwrap\""
- }
-
- var SignatureMapper = data.NewMapper(Signature{})
-
- func (h Signature) MarshalJSON() ([]byte, error) {
- return SignatureMapper.ToJSON(h.SignatureInner)
- }
-
- func (h *Signature) UnmarshalJSON(data []byte) (err error) {
- parsed, err := SignatureMapper.FromJSON(data)
- if err == nil && parsed != nil {
- h.SignatureInner = parsed.(SignatureInner)
- }
- return err
- }
-
- // Unwrap recovers the concrete interface safely (regardless of levels of embeds)
- func (h Signature) Unwrap() SignatureInner {
- hi := h.SignatureInner
- for wrap, ok := hi.(Signature); ok; wrap, ok = hi.(Signature) {
- hi = wrap.SignatureInner
- }
- return hi
- }
-
- func (h Signature) Empty() bool {
- return h.SignatureInner == nil
- }
-
- /*** below are bindings for each implementation ***/
-
- func init() {
- SignatureMapper.RegisterImplementation(SignatureEd25519{}, "ed25519", 0x1)
- }
-
- func (hi SignatureEd25519) Wrap() Signature {
- return Signature{hi}
- }
-
- func init() {
- SignatureMapper.RegisterImplementation(SignatureSecp256k1{}, "secp256k1", 0x2)
- }
-
- func (hi SignatureSecp256k1) Wrap() Signature {
- return Signature{hi}
- }
|