<!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.8.2">
  <title>operator == method - SpecializedDuration class - ex library - Dart API</title>
  <!-- required because all the links are pseudo-absolute -->
  <base href="../..">

  <link href='https://fonts.googleapis.com/css?family=Source+Code+Pro|Roboto:500,400italic,300,400' rel='stylesheet' type='text/css'>
  <link rel="stylesheet" href="static-assets/prettify.css">
  <link rel="stylesheet" href="static-assets/css/bootstrap.min.css">
  <link rel="stylesheet" href="static-assets/styles.css">

  <meta name="description" content="API docs for the operator == method from the SpecializedDuration class, for the Dart programming language.">
  <link rel="icon" href="static-assets/favicon.png">

  <!-- Do not remove placeholder -->
  <!-- Header Placeholder -->
</head>

<body>

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

<header class="container-fluid" id="title">
  <nav class="navbar navbar-fixed-top">
    <div class="container">
      <div class="row">
        <div class="col-sm-12 contents">
          <button id="sidenav-left-toggle" type="button">&nbsp;</button>
          <ol class="breadcrumbs gt-separated hidden-xs">
            <li><a href="index.html">test_package</a></li>
            <li><a href="ex/ex-library.html">ex</a></li>
            <li><a href="ex/SpecializedDuration-class.html">SpecializedDuration</a></li>
            <li class="self-crumb">operator ==</li>
          </ol>
          <div class="self-name">operator ==</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>
        </div> <!-- /col -->
      </div> <!-- /row -->
    </div> <!-- /container -->
  </nav>

  <div class="container masthead">
    <div class="row">
      <div class="col-sm-12 contents">
        <ol class="breadcrumbs gt-separated visible-xs">
          <li><a href="index.html">test_package</a></li>
          <li><a href="ex/ex-library.html">ex</a></li>
          <li><a href="ex/SpecializedDuration-class.html">SpecializedDuration</a></li>
          <li class="self-crumb">operator ==</li>
        </ol>
        <div class="title-description">
          <h1 class="title">
            <span class="kind">method</span> operator ==
          </h1>
        </div>
        <ul class="subnav">
          <li><a href="ex/SpecializedDuration/operator_equals.html#source">Source</a></li>
        </ul>
      </div> <!-- /col -->
    </div> <!-- /row -->
  </div> <!-- /container -->

</header>

<div class="container body">
  <div class="row">

  <div class="col-xs-6 col-sm-3 col-md-2 sidebar sidebar-offcanvas-left">
    <h5><a href="index.html">test_package</a></h5>
    <h5><a href="ex/ex-library.html">ex</a></h5>
    <h5><a href="ex/SpecializedDuration-class.html">SpecializedDuration</a></h5>

    <ol>
    
    
    
      <li class="section-title"><a href="ex/SpecializedDuration-class.html#constructors">Constructors</a></li>
      <li><a href="ex/SpecializedDuration/SpecializedDuration.html">SpecializedDuration</a></li>
    
      <li class="section-title inherited">
        <a href="ex/SpecializedDuration-class.html#instance-properties">Properties</a>
      </li>
      <li class="inherited"><a href="ex/SpecializedDuration/hashCode.html">hashCode</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/inDays.html">inDays</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/inHours.html">inHours</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/inMicroseconds.html">inMicroseconds</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/inMilliseconds.html">inMilliseconds</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/inMinutes.html">inMinutes</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/inSeconds.html">inSeconds</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/isNegative.html">isNegative</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/runtimeType.html">runtimeType</a></li>
    
      <li class="section-title inherited"><a href="ex/SpecializedDuration-class.html#operators">Operators</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/operator_multiply.html">operator *</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/operator_plus.html">operator +</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/operator_minus.html">operator -</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/operator_less.html">operator <</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/operator_less_equal.html">operator <=</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/operator_equals.html">operator ==</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/operator_greater.html">operator ></a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/operator_greater_equal.html">operator >=</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/operator_unary_minus.html">operator unary-</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/operator_truncate_divide.html">operator ~/</a></li>
    
      <li class="section-title inherited"><a href="ex/SpecializedDuration-class.html#instance-methods">Methods</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/abs.html">abs</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/compareTo.html">compareTo</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/noSuchMethod.html">noSuchMethod</a></li>
      <li class="inherited"><a href="ex/SpecializedDuration/toString.html">toString</a></li>
    </ol>

  </div><!--/.sidebar-offcanvas-->

  <div class="col-xs-12 col-sm-9 col-md-8 main-content">

    <section class="multi-line-signature">
        <span class="returntype">bool</span>
        <span class="name ">operator ==</span>(<wbr><span class="parameter" id="==-param-other"><span class="parameter-name">other</span></span>)
    </section>

    <section class="desc markdown">
      <p>Returns <code>true</code> if this Duration is the same object as <code>other</code>.</p>
    </section>
    
    <section class="summary source-code" id="source">
      <h2><span>Source</span> </h2>
      <pre><code class="prettyprint lang-dart">bool operator ==(other) {
  if (other is !Duration) return false;
  return _duration == other._duration;
}</code></pre>
    </section>

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

</div> <!-- row -->
</div> <!-- container -->

<footer>
  <div class="container-fluid">
    <div class="container">
      <p class="text-center">
        <span class="no-break">
          test_package 0.0.1
        </span>
        &bull;
        <span class="no-break">
          <a href="https://www.dartlang.org">
            <img src="static-assets/favicon.png" alt="Dart" title="Dart" width="16" height="16">
          </a>
        </span>
        &bull;
        <span class="copyright no-break">
          <a href="http://creativecommons.org/licenses/by-sa/4.0/">cc license</a>
        </span>
      </p>
    </div>
  </div>
</footer>

<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="static-assets/typeahead.bundle.min.js"></script>
<script src="static-assets/prettify.js"></script>
<script src="static-assets/script.js"></script>
<!-- Do not remove placeholder -->
<!-- Footer Placeholder -->

</body>

</html>
