title: Is there an efficient way to share structure between golang packages?
body: <p>I have a short program in Go with the following files part of it.
  Program directory structure:</p>
  
  <pre><code>myprogram/
      main.go
      server.go
      routines.go
      structs.go
  </code></pre>
  
  <p>These different files contain different function. The <code>structs.go</code> file contains a list of structure type defined, and used in several files of my program. What I want to do, now is to split my program into package like in this example :</p>
  
  <pre><code>main/
      main.go // the main program
  server/
      server.go // a package imported in main
  routines/
      routines.go // a package imported in main
  </code></pre>
  
  <p>My problem, is that I do not know where to put <code>structs.go</code> because it contains structures used in several package, as in the 'main.go' code.</p>
  
  <p>How to share efficiently this <code>structs.go</code> file ? Should I include it (via a symlink to the file) in each of the package I defined, i.e <code>server</code>and <code>routines</code> and also in main ?</p>
  
  <p>My method may be awkward because I'm a beginner in Go, and in programming generally. </p>