title: In go, how do you create an interface when methods are called by *Type?
body: <p>Attempting to create an interface, but methods have <code>*Type</code>, not <code>Type</code> receivers</p>
  
  <p>APOLOGIZE: was sleepy and mis-read error messages.  Thought I was being block from creating the DB interface when in reality I was mis-using it.  Sorry about that... will be more careful in the future!</p>
  
  <pre>
  type Char string
  
  func (*Char) toType(v *string) interface{} {
          if v == nil {
                  return (*Char)(nil)
          }
          var s string = *v
          ch := Char(s[0])
          return &ch
  }
  func (v *Char) toRaw() *string {
          if v == nil {
                  return (*string)(nil)
          }
          s := *((*string)(v))
          return &s
  }
  </pre>
  
  <p>from here I would like an interface that contains the methods <code>toType</code> and <code>toRaw</code></p>
  
  <pre>
  type DB interface{
          toRaw() *string
          toType(*string) interface{}
  }
  </pre>
  
  <p>does not work since the function receivers are pointers.  I say this because when I try to use it I get the error.k</p>
  
  <pre>
      Char does not implement DB (toRaw method requires pointer receiver)
  </pre>
  
  <p>Is there a way to create an interface from <code>toType</code> and <code>toRaw</code>, or do I need to backup and have the receivers be the types themselves and not pointers to types?</p>