misc: remove dependency on pkg:tuple (and transitively quiver_hashcode)
diff --git a/lib/dartdoc.dart b/lib/dartdoc.dart
index ee2104a..4d4311f 100644
--- a/lib/dartdoc.dart
+++ b/lib/dartdoc.dart
@@ -22,12 +22,12 @@
import 'package:dartdoc/src/logging.dart';
import 'package:dartdoc/src/model.dart';
import 'package:dartdoc/src/package_meta.dart';
+import 'package:dartdoc/src/tuple.dart';
import 'package:dartdoc/src/utils.dart';
import 'package:dartdoc/src/warnings.dart';
import 'package:html/dom.dart' show Element, Document;
import 'package:html/parser.dart' show parse;
import 'package:path/path.dart' as pathLib;
-import 'package:tuple/tuple.dart';
export 'package:dartdoc/src/dartdoc_options.dart';
export 'package:dartdoc/src/element_type.dart';
diff --git a/lib/src/line_number_cache.dart b/lib/src/line_number_cache.dart
index a2cdc49..966d77a 100644
--- a/lib/src/line_number_cache.dart
+++ b/lib/src/line_number_cache.dart
@@ -7,7 +7,7 @@
import 'dart:collection';
import 'dart:io';
-import 'package:tuple/tuple.dart';
+import 'package:dartdoc/src/tuple.dart';
String _getNewlineChar(String contents) {
if (contents.contains("\r\n")) {
diff --git a/lib/src/markdown_processor.dart b/lib/src/markdown_processor.dart
index 13c6c25..2c1640a 100644
--- a/lib/src/markdown_processor.dart
+++ b/lib/src/markdown_processor.dart
@@ -13,10 +13,10 @@
import 'package:dartdoc/src/element_type.dart';
import 'package:dartdoc/src/model.dart';
import 'package:dartdoc/src/model_utils.dart';
+import 'package:dartdoc/src/tuple.dart';
import 'package:dartdoc/src/warnings.dart';
import 'package:html/parser.dart' show parse;
import 'package:markdown/markdown.dart' as md;
-import 'package:tuple/tuple.dart';
const validHtmlTags = const [
"a",
diff --git a/lib/src/model.dart b/lib/src/model.dart
index db4b9f1..3bf13e8 100644
--- a/lib/src/model.dart
+++ b/lib/src/model.dart
@@ -45,13 +45,13 @@
import 'package:dartdoc/src/model_utils.dart';
import 'package:dartdoc/src/package_meta.dart' show PackageMeta, FileContents;
import 'package:dartdoc/src/special_elements.dart';
+import 'package:dartdoc/src/tuple.dart';
import 'package:dartdoc/src/utils.dart';
import 'package:dartdoc/src/warnings.dart';
import 'package:front_end/src/byte_store/byte_store.dart';
import 'package:front_end/src/base/performance_logger.dart';
import 'package:path/path.dart' as pathLib;
import 'package:pub_semver/pub_semver.dart';
-import 'package:tuple/tuple.dart';
import 'package:package_config/discovery.dart' as package_config;
int byName(Nameable a, Nameable b) =>
diff --git a/lib/src/tuple.dart b/lib/src/tuple.dart
new file mode 100644
index 0000000..78d1b9d
--- /dev/null
+++ b/lib/src/tuple.dart
@@ -0,0 +1,87 @@
+// Copied from source at github.com/kseo/tuple/blob/470ed3aeb/lib/src/tuple.dart
+
+// Original copyright:
+// Copyright (c) 2014, the tuple project authors. Please see the AUTHORS
+// file for details. All rights reserved. Use of this source code is governed
+// by a BSD-style license that can be found in the LICENSE file.
+
+import 'package:quiver/core.dart';
+
+/// Represents a 2-tuple, or pair.
+class Tuple2<T1, T2> {
+ /// Returns the first item of the tuple
+ final T1 item1;
+
+ /// Returns the second item of the tuple
+ final T2 item2;
+
+ /// Creates a new tuple value with the specified items.
+ const Tuple2(this.item1, this.item2);
+
+ @override
+ String toString() => '[$item1, $item2]';
+
+ @override
+ bool operator ==(o) => o is Tuple2 && o.item1 == item1 && o.item2 == item2;
+
+ @override
+ int get hashCode => hash2(item1.hashCode, item2.hashCode);
+}
+
+/// Represents a 3-tuple, or triple.
+class Tuple3<T1, T2, T3> {
+ /// Returns the first item of the tuple
+ final T1 item1;
+
+ /// Returns the second item of the tuple
+ final T2 item2;
+
+ /// Returns the third item of the tuple
+ final T3 item3;
+
+ /// Creates a new tuple value with the specified items.
+ const Tuple3(this.item1, this.item2, this.item3);
+
+ @override
+ String toString() => '[$item1, $item2, $item3]';
+
+ @override
+ bool operator ==(o) =>
+ o is Tuple3 && o.item1 == item1 && o.item2 == item2 && o.item3 == item3;
+
+ @override
+ int get hashCode => hash3(item1.hashCode, item2.hashCode, item3.hashCode);
+}
+
+/// Represents a 4-tuple, or quadruple.
+class Tuple4<T1, T2, T3, T4> {
+ /// Returns the first item of the tuple
+ final T1 item1;
+
+ /// Returns the second item of the tuple
+ final T2 item2;
+
+ /// Returns the third item of the tuple
+ final T3 item3;
+
+ /// Returns the fourth item of the tuple
+ final T4 item4;
+
+ /// Creates a new tuple value with the specified items.
+ const Tuple4(this.item1, this.item2, this.item3, this.item4);
+
+ @override
+ String toString() => '[$item1, $item2, $item3, $item4]';
+
+ @override
+ bool operator ==(o) =>
+ o is Tuple4 &&
+ o.item1 == item1 &&
+ o.item2 == item2 &&
+ o.item3 == item3 &&
+ o.item4 == item4;
+
+ @override
+ int get hashCode =>
+ hash4(item1.hashCode, item2.hashCode, item3.hashCode, item4.hashCode);
+}
diff --git a/lib/src/warnings.dart b/lib/src/warnings.dart
index e7e182a..62857c7 100644
--- a/lib/src/warnings.dart
+++ b/lib/src/warnings.dart
@@ -5,7 +5,7 @@
import 'package:analyzer/dart/element/element.dart';
import 'package:dartdoc/src/logging.dart';
import 'package:dartdoc/src/model.dart';
-import 'package:tuple/tuple.dart';
+import 'package:dartdoc/src/tuple.dart';
class PackageWarningHelpText {
final String warningName;
diff --git a/pubspec.lock b/pubspec.lock
index 52285ad..8770531 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -358,13 +358,6 @@
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0+1"
- quiver_hashcode:
- dependency: transitive
- description:
- name: quiver_hashcode
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.0.0"
resource:
dependency: "direct main"
description:
@@ -463,13 +456,6 @@
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
- tuple:
- dependency: "direct main"
- description:
- name: tuple
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.0.1"
typed_data:
dependency: transitive
description:
diff --git a/pubspec.yaml b/pubspec.yaml
index 01d7534..25b6b43 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -25,7 +25,6 @@
quiver: ^2.0.0
resource: ^2.1.2
stack_trace: ^1.4.2
- tuple: ^1.0.1
yaml: ^2.1.0
dev_dependencies: