github.com/cosmos/cosmos-sdk@v0.50.10/testutil/testdata/animal.go (about)

     1  package testdata
     2  
     3  // nolint
     4  
     5  import (
     6  	"fmt"
     7  
     8  	"github.com/cosmos/gogoproto/proto"
     9  
    10  	"github.com/cosmos/cosmos-sdk/codec/types"
    11  )
    12  
    13  type Animal interface {
    14  	proto.Message
    15  
    16  	Greet() string
    17  }
    18  
    19  type Cartoon interface {
    20  	proto.Message
    21  
    22  	Identify() string
    23  }
    24  
    25  func (c *Cat) Greet() string {
    26  	return fmt.Sprintf("Meow, my name is %s", c.Moniker)
    27  }
    28  
    29  func (c *Bird) Identify() string {
    30  	return "This is Tweety."
    31  }
    32  
    33  func (d Dog) Greet() string {
    34  	return fmt.Sprintf("Roof, my name is %s", d.Name)
    35  }
    36  
    37  var _ types.UnpackInterfacesMessage = HasAnimal{}
    38  
    39  func (m HasAnimal) UnpackInterfaces(unpacker types.AnyUnpacker) error {
    40  	var animal Animal
    41  	return unpacker.UnpackAny(m.Animal, &animal)
    42  }
    43  
    44  type HasAnimalI interface {
    45  	TheAnimal() Animal
    46  }
    47  
    48  var _ HasAnimalI = &HasAnimal{}
    49  
    50  func (m HasAnimal) TheAnimal() Animal {
    51  	return m.Animal.GetCachedValue().(Animal)
    52  }
    53  
    54  type HasHasAnimalI interface {
    55  	TheHasAnimal() HasAnimalI
    56  }
    57  
    58  var _ HasHasAnimalI = &HasHasAnimal{}
    59  
    60  func (m HasHasAnimal) TheHasAnimal() HasAnimalI {
    61  	return m.HasAnimal.GetCachedValue().(HasAnimalI)
    62  }
    63  
    64  var _ types.UnpackInterfacesMessage = HasHasAnimal{}
    65  
    66  func (m HasHasAnimal) UnpackInterfaces(unpacker types.AnyUnpacker) error {
    67  	var animal HasAnimalI
    68  	return unpacker.UnpackAny(m.HasAnimal, &animal)
    69  }
    70  
    71  type HasHasHasAnimalI interface {
    72  	TheHasHasAnimal() HasHasAnimalI
    73  }
    74  
    75  var _ HasHasAnimalI = &HasHasAnimal{}
    76  
    77  func (m HasHasHasAnimal) TheHasHasAnimal() HasHasAnimalI {
    78  	return m.HasHasAnimal.GetCachedValue().(HasHasAnimalI)
    79  }
    80  
    81  var _ types.UnpackInterfacesMessage = HasHasHasAnimal{}
    82  
    83  func (m HasHasHasAnimal) UnpackInterfaces(unpacker types.AnyUnpacker) error {
    84  	var animal HasHasAnimalI
    85  	return unpacker.UnpackAny(m.HasHasAnimal, &animal)
    86  }