title: Can embedded methods access "parent" fields?
body: <p><strong>Background</strong></p>
  
  <p>I've done a fair amount of spec reading and code testing and I think the answer is no, but I want to make sure I'm not missing anything.</p>
  
  <p><strong>Goal</strong></p>
  
  <p>Basically, I'm trying to create a Active Record style ORM for Go, because I like how readable it is and how abstracted it is from its back end data store. I'd rather write <code>user.Save()</code> than <code>data.Save(user)</code> by embedding common CRUD methods on the user struct.</p>
  
  <p><strong>Example</strong></p>
  
  <pre><code>package main
  
  import (
      "fmt"
      "reflect"
  )
  
  func main() {
      test := Foo{Bar: &amp;Bar{}, Name: "name"}
      test.Test()
  }
  
  type Foo struct {
      *Bar
      Name string
  }
  
  func (s *Foo) Method() {
      fmt.Println("Foo.Method()")
  }
  
  type Bar struct {
  }
  
  func (s *Bar) Test() {
      t := reflect.TypeOf(s)
      v := reflect.ValueOf(s)
      fmt.Printf("model: %+v %+v %+v\n", s, t, v)
      fmt.Println(s.Name)
      s.Method()
  }
  </code></pre>
  
  <p><a href="http://play.golang.org/p/cWyqqVSKGH" rel="noreferrer">http://play.golang.org/p/cWyqqVSKGH</a></p>
  
  <p><strong>Question</strong></p>
  
  <p>Is there a way to make top-level fields (not sure what the correct term in Go is for these) accessible from embedded methods (eg: <code>s.Name</code> or <code>s.Method()</code>?</p>
  
  <p>Thank you donating your time to a new Gopher.</p>