<!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.17.1+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">test_package 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>test_package 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!
}

/*
80-characters: to ensure default styles accommodate Dart line length convention.
01234567890123456789012345678901234567890123456789012345678901234567890123456789
*/
</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>

</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>
