<!-- Copyright 2009 The Go Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> <!-- Note: Static (i.e., not template-generated) href and id attributes start with "pkg-" to make it impossible for them to conflict with generated attributes (some of which correspond to Go identifiers). --> {{with .PDoc}} <script type='text/javascript'> document.ANALYSIS_DATA = {{$.AnalysisData}}; document.CALLGRAPH = {{$.CallGraph}}; </script> {{if $.IsMain}} {{/* command documentation */}} {{comment_html .Doc}} {{else}} {{/* package documentation */}} <div id="short-nav"> <dl> <dd><code>import "{{html .ImportPath}}"</code></dd> </dl> <dl> <dd><a href="#pkg-overview" class="overviewLink">Overview</a></dd> <dd><a href="#pkg-index" class="indexLink">Index</a></dd> {{if $.Examples}} <dd><a href="#pkg-examples" class="examplesLink">Examples</a></dd> {{end}} {{if $.Dirs}} <dd><a href="#pkg-subdirectories">Subdirectories</a></dd> {{end}} </dl> </div> <!-- The package's Name is printed as title by the top-level template --> <div id="pkg-overview" class="toggleVisible"> <div class="collapsed"> <h2 class="toggleButton" title="Click to show Overview section">Overview ▹</h2> </div> <div class="expanded"> <h2 class="toggleButton" title="Click to hide Overview section">Overview ▾</h2> {{comment_html .Doc}} {{example_html $ ""}} </div> </div> <div id="pkg-index" class="toggleVisible"> <div class="collapsed"> <h2 class="toggleButton" title="Click to show Index section">Index ▹</h2> </div> <div class="expanded"> <h2 class="toggleButton" title="Click to hide Index section">Index ▾</h2> <!-- Table of contents for API; must be named manual-nav to turn off auto nav. --> <div id="manual-nav"> <dl> {{if .Consts}} <dd><a href="#pkg-constants">Constants</a></dd> {{end}} {{if .Vars}} <dd><a href="#pkg-variables">Variables</a></dd> {{end}} {{range .Funcs}} {{$name_html := html .Name}} <dd><a href="#{{$name_html}}">{{node_html $ .Decl false | sanitize}}</a></dd> {{end}} {{range .Types}} {{$tname_html := html .Name}} <dd><a href="#{{$tname_html}}">type {{$tname_html}}</a></dd> {{range .Funcs}} {{$name_html := html .Name}} <dd> <a href="#{{$name_html}}">{{node_html $ .Decl false | sanitize}}</a></dd> {{end}} {{range .Methods}} {{$name_html := html .Name}} <dd> <a href="#{{$tname_html}}.{{$name_html}}">{{node_html $ .Decl false | sanitize}}</a></dd> {{end}} {{end}} {{if $.Notes}} {{range $marker, $item := $.Notes}} <dd><a href="#pkg-note-{{$marker}}">{{noteTitle $marker | html}}s</a></dd> {{end}} {{end}} </dl> </div><!-- #manual-nav --> {{if $.Examples}} <div id="pkg-examples"> <h3>Examples</h3> <dl> {{range $.Examples}} <dd><a class="exampleLink" href="#example_{{.Name}}">{{example_name .Name}}</a></dd> {{end}} </dl> </div> {{end}} {{with .Filenames}} <h3>Package files</h3> <p> <span style="font-size:90%"> {{range .}} <a href="{{.|srcLink|html}}">{{.|filename|html}}</a> {{end}} </span> </p> {{end}} </div><!-- .expanded --> </div><!-- #pkg-index --> <div id="pkg-callgraph" class="toggle" style="display: none"> <div class="collapsed"> <h2 class="toggleButton" title="Click to show Internal Call Graph section">Internal call graph ▹</h2> </div> <!-- .expanded --> <div class="expanded"> <h2 class="toggleButton" title="Click to hide Internal Call Graph section">Internal call graph ▾</h2> <p> In the call graph viewer below, each node is a function belonging to this package and its children are the functions it calls—perhaps dynamically. </p> <p> The root nodes are the entry points of the package: functions that may be called from outside the package. There may be non-exported or anonymous functions among them if they are called dynamically from another package. </p> <p> Click a node to visit that function's source code. From there you can visit its callers by clicking its declaring <code>func</code> token. </p> <p> Functions may be omitted if they were determined to be unreachable in the particular programs or tests that were analyzed. </p> <!-- Zero means show all package entry points. --> <ul style="margin-left: 0.5in" id="callgraph-0" class="treeview"></ul> </div> </div> <!-- #pkg-callgraph --> {{with .Consts}} <h2 id="pkg-constants">Constants</h2> {{range .}} {{comment_html .Doc}} <pre>{{node_html $ .Decl true}}</pre> {{end}} {{end}} {{with .Vars}} <h2 id="pkg-variables">Variables</h2> {{range .}} {{comment_html .Doc}} <pre>{{node_html $ .Decl true}}</pre> {{end}} {{end}} {{range .Funcs}} {{/* Name is a string - no need for FSet */}} {{$name_html := html .Name}} <h2 id="{{$name_html}}">func <a href="{{posLink_url $ .Decl}}">{{$name_html}}</a> <a class="permalink" href="#{{$name_html}}">¶</a> </h2> <pre>{{node_html $ .Decl true}}</pre> {{comment_html .Doc}} {{example_html $ .Name}} {{callgraph_html $ "" .Name}} {{end}} {{range .Types}} {{$tname := .Name}} {{$tname_html := html .Name}} <h2 id="{{$tname_html}}">type <a href="{{posLink_url $ .Decl}}">{{$tname_html}}</a> <a class="permalink" href="#{{$tname_html}}">¶</a> </h2> {{comment_html .Doc}} <pre>{{node_html $ .Decl true}}</pre> {{range .Consts}} {{comment_html .Doc}} <pre>{{node_html $ .Decl true}}</pre> {{end}} {{range .Vars}} {{comment_html .Doc}} <pre>{{node_html $ .Decl true}}</pre> {{end}} {{example_html $ $tname}} {{implements_html $ $tname}} {{methodset_html $ $tname}} {{range .Funcs}} {{$name_html := html .Name}} <h3 id="{{$name_html}}">func <a href="{{posLink_url $ .Decl}}">{{$name_html}}</a> <a class="permalink" href="#{{$name_html}}">¶</a> </h3> <pre>{{node_html $ .Decl true}}</pre> {{comment_html .Doc}} {{example_html $ .Name}} {{callgraph_html $ "" .Name}} {{end}} {{range .Methods}} {{$name_html := html .Name}} <h3 id="{{$tname_html}}.{{$name_html}}">func ({{html .Recv}}) <a href="{{posLink_url $ .Decl}}">{{$name_html}}</a> <a class="permalink" href="#{{$tname_html}}.{{$name_html}}">¶</a> </h3> <pre>{{node_html $ .Decl true}}</pre> {{comment_html .Doc}} {{$name := printf "%s_%s" $tname .Name}} {{example_html $ $name}} {{callgraph_html $ .Recv .Name}} {{end}} {{end}} {{end}} {{with $.Notes}} {{range $marker, $content := .}} <h2 id="pkg-note-{{$marker}}">{{noteTitle $marker | html}}s</h2> <ul style="list-style: none; padding: 0;"> {{range .}} <li><a href="{{posLink_url $ .}}" style="float: left;">☞</a> {{comment_html .Body}}</li> {{end}} </ul> {{end}} {{end}} {{end}} {{with .PAst}} {{range $filename, $ast := .}} <a href="{{$filename|srcLink|html}}">{{$filename|filename|html}}</a>:<pre>{{node_html $ $ast false}}</pre> {{end}} {{end}} {{with .Dirs}} {{/* DirList entries are numbers and strings - no need for FSet */}} {{if $.PDoc}} <h2 id="pkg-subdirectories">Subdirectories</h2> {{end}} {{if eq $.Dirname "/src"}} <div id="manual-nav"> <dl> <dt><a href="#stdlib">Standard library</a></dt> <dt><a href="#other">Other packages</a></dt> <dd><a href="#subrepo">Sub-repositories</a></dd> <dd><a href="#community">Community</a></dd> </dl> </div> <h2 id="stdlib">Standard library</h2> <img alt="" class="gopher" src="/doc/gopher/pkg.png"/> {{end}} <div class="pkg-dir"> <table> <tr> <th class="pkg-name">Name</th> <th class="pkg-synopsis">Synopsis</th> </tr> {{if not (or (eq $.Dirname "/src") (eq $.Dirname "/src/cmd") $.DirFlat)}} <tr> <td colspan="2"><a href="..">..</a></td> </tr> {{end}} {{range .List}} {{if $.DirFlat}} {{if .HasPkg}} <tr> <td class="pkg-name"> <a href="{{html .Path}}/{{modeQueryString $.Mode | html}}">{{html .Path}}</a> </td> <td class="pkg-synopsis"> {{html .Synopsis}} </td> </tr> {{end}} {{else}} <tr> <td class="pkg-name" style="padding-left: {{multiply .Depth 20}}px;"> <a href="{{html .Path}}/{{modeQueryString $.Mode | html}}">{{html .Name}}</a> </td> <td class="pkg-synopsis"> {{html .Synopsis}} </td> </tr> {{end}} {{end}} </table> </div> {{if eq $.Dirname "/src"}} <h2 id="other">Other packages</h2> <h3 id="subrepo">Sub-repositories</h3> <p> These packages are part of the Go Project but outside the main Go tree. They are developed under looser <a href="/doc/go1compat">compatibility requirements</a> than the Go core. Install them with "<a href="/cmd/go/#hdr-Download_and_install_packages_and_dependencies">go get</a>". </p> <ul> <li><a href="//godoc.org/golang.org/x/benchmarks">benchmarks</a> — benchmarks to measure Go as it is developed.</li> <li><a href="//godoc.org/golang.org/x/blog">blog</a> — <a href="//blog.golang.org">blog.golang.org</a>'s implementation.</li> <li><a href="//godoc.org/golang.org/x/build">build</a> — <a href="//build.golang.org">build.golang.org</a>'s implementation.</li> <li><a href="//godoc.org/golang.org/x/crypto">crypto</a> — additional cryptography packages.</li> <li><a href="//godoc.org/golang.org/x/debug">debug</a> — an experimental debugger for Go.</li> <li><a href="//godoc.org/golang.org/x/image">image</a> — additional imaging packages.</li> <li><a href="//godoc.org/golang.org/x/mobile">mobile</a> — experimental support for Go on mobile platforms.</li> <li><a href="//godoc.org/golang.org/x/net">net</a> — additional networking packages.</li> <li><a href="//godoc.org/golang.org/x/sys">sys</a> — packages for making system calls.</li> <li><a href="//godoc.org/golang.org/x/text">text</a> — packages for working with text.</li> <li><a href="//godoc.org/golang.org/x/tools">tools</a> — godoc, goimports, gorename, and other tools.</li> <li><a href="//godoc.org/golang.org/x/tour">tour</a> — <a href="//tour.golang.org">tour.golang.org</a>'s implementation.</li> <li><a href="//godoc.org/golang.org/x/exp">exp</a> — experimental and deprecated packages (handle with care; may change without warning).</li> </ul> <h3 id="community">Community</h3> <p> These services can help you find Open Source packages provided by the community. </p> <ul> <li><a href="//godoc.org">GoDoc</a> - a package index and search engine.</li> <li><a href="http://go-search.org">Go Search</a> - a code search engine.</li> <li><a href="/wiki/Projects">Projects at the Go Wiki</a> - a curated list of Go projects.</li> </ul> {{end}} {{end}}