<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="generator" content="made with love by dartdoc 0.14.1">
  <meta name="description" content="test_package API docs, for the Dart programming language.">
  <title>test_package - Dart API docs</title>

  <link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:500,400i,400,300|Source+Sans+Pro:400,300,700" rel="stylesheet">
  <link rel="stylesheet" href="static-assets/github.css">
  <link rel="stylesheet" href="static-assets/styles.css">
  <link rel="icon" href="static-assets/favicon.png">

</head>

<body>

<div id="overlay-under-drawer"></div>

<header id="title">
  <ol class="breadcrumbs gt-separated dark hidden-xs">
    <li><a href="http://github.com/dart-lang">package test_package</a></li>
  </ol>
  <div class="self-name">test_package</div>
  <form class="search navbar-right" role="search">
    <input type="text" id="search-box" autocomplete="off" disabled class="form-control typeahead" placeholder="Loading search...">
  </form>
</header>

<main>

  <div class="col-xs-6 col-sm-3 col-md-2 sidebar sidebar-offcanvas-left">
    <h5>package test_package</h5>


    <ol>
      <li class="section-title"><a href="index.html#libraries">Libraries</a></li>
      <li><a href="anonymous_library/anonymous_library-library.html">anonymous_library</a></li>
      <li><a href="another_anonymous_lib/another_anonymous_lib-library.html">another_anonymous_lib</a></li>
      <li><a href="code_in_comments/code_in_comments-library.html">code_in_comments</a></li>
      <li><a href="css/css-library.html">css</a></li>
      <li><a href="ex/ex-library.html">ex</a></li>
      <li><a href="fake/fake-library.html">fake</a></li>
      <li><a class="deprecated" href="is_deprecated/is_deprecated-library.html">is_deprecated</a></li>
      <li><a href="reexport_one/reexport_one-library.html">reexport_one</a></li>
      <li><a href="reexport_two/reexport_two-library.html">reexport_two</a></li>
      <li><a href="test_package_imported.main/test_package_imported.main-library.html">test_package_imported.main</a></li>
      <li><a href="two_exports/two_exports-library.html">two_exports</a></li>
    </ol>
  </div>

  <div class="col-xs-12 col-sm-9 col-md-8 main-content">
      <section class="desc markdown">
        <h1>Best Package</h1>
<p>This is an amazing package.</p>
<p>For example, it:</p><ul><li>Is very fast</li><li>Has zero bugs</li><li>Is free</li></ul>
<p>It also has some awesome code</p>
<pre class="language-dart"><code class="language-dart">void main() {
  // in Dart!
}
</code></pre>
<pre class="language-yaml"><code class="language-yaml">and_yaml:
  - value
  - "value"
  - 3.14
</code></pre>
<pre class="language-css"><code class="language-css">/* issue 1484 regression */
#id {
  background: green;
}

.class {
  background: red;
}

div {
  background: green;
}
</code></pre>
<pre class="language-html"><code class="language-html">&lt;div&gt;
  &lt;strong&gt;Hello!&lt;/strong&gt;
  &lt;h1&gt;World!&lt;/h1&gt;
&lt;/div&gt;
</code></pre>
<pre class="language-js"><code class="language-js">var f = function(a, b) {
  return a + b;  
};
</code></pre>
<p>It sometimes generates warnings in commentRefs like this: <code>unknownThingy.FromSomewhere</code></p>
<p>Be sure to check out other awesome packages on <a href="https://pub.dartlang.org">pub</a>.</p>
      </section>
      

      <section class="summary" id="libraries">
        <h2>Libraries</h2>
        <dl>
            <dt id="anonymous_library">
              <span class="name"><a href="anonymous_library/anonymous_library-library.html">anonymous_library</a></span>
            </dt>
            <dd>
              
            </dd>
            <dt id="another_anonymous_lib">
              <span class="name"><a href="another_anonymous_lib/another_anonymous_lib-library.html">another_anonymous_lib</a></span>
            </dt>
            <dd>
              
            </dd>
            <dt id="code_in_comments">
              <span class="name"><a href="code_in_comments/code_in_comments-library.html">code_in_comments</a></span>
            </dt>
            <dd>
              <code class="language-dart">void main() {
  // in Dart!
}
</code> <a href="code_in_comments/code_in_comments-library.html">[...]</a>
            </dd>
            <dt id="css">
              <span class="name"><a href="css/css-library.html">css</a></span>
            </dt>
            <dd>
              Testing that a library name doesn't conflict
with directories created by dartdoc.
            </dd>
            <dt id="ex">
              <span class="name"><a href="ex/ex-library.html">ex</a></span>
            </dt>
            <dd>
              a library. testing string escaping: <code>var s = 'a string'</code> <cool></cool>
            </dd>
            <dt id="fake">
              <span class="name"><a href="fake/fake-library.html">fake</a></span>
            </dt>
            <dd>
              WOW FAKE PACKAGE IS <strong>BEST</strong> <a href="http://example.org">PACKAGE</a> <a href="fake/fake-library.html">[...]</a>
            </dd>
            <dt id="is_deprecated">
              <span class="name"><a class="deprecated" href="is_deprecated/is_deprecated-library.html">is_deprecated</a></span>
            </dt>
            <dd>
              This lib is deprecated. It never had a chance
            </dd>
            <dt id="reexport_one">
              <span class="name"><a href="reexport_one/reexport_one-library.html">reexport_one</a></span>
            </dt>
            <dd>
              
            </dd>
            <dt id="reexport_two">
              <span class="name"><a href="reexport_two/reexport_two-library.html">reexport_two</a></span>
            </dt>
            <dd>
              
            </dd>
            <dt id="test_package_imported.main">
              <span class="name"><a href="test_package_imported.main/test_package_imported.main-library.html">test_package_imported.main</a></span>
            </dt>
            <dd>
              
            </dd>
            <dt id="two_exports">
              <span class="name"><a href="two_exports/two_exports-library.html">two_exports</a></span>
            </dt>
            <dd>
              
            </dd>
        </dl>
      </section>

  </div> <!-- /.main-content -->

</main>

<footer>
  <span class="no-break">
    test_package 0.0.1
  </span>
  &bull;
  <span class="copyright no-break">
    <a href="http://creativecommons.org/licenses/by-sa/4.0/">cc license</a>
  </span>

</footer>

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="static-assets/typeahead.bundle.min.js"></script>
<script src="static-assets/highlight.pack.js"></script>
<script src="static-assets/URI.js"></script>
<script src="static-assets/script.js"></script>


</body>

</html>
