Remove references to asExternalTypedData (#13)

* asTypedList

* changelog
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d36f1a7..5e201b1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## 0.1.3-dev.3
+
+Replace use of deprecated `asExternalTypedData` with `asTypedList`.
+
 ## 0.1.3-dev.2
 
 Incorporate struct API changes, drop type argument of structs.
diff --git a/lib/src/utf16.dart b/lib/src/utf16.dart
index cffdb99..5864120 100644
--- a/lib/src/utf16.dart
+++ b/lib/src/utf16.dart
@@ -24,8 +24,7 @@
   static Pointer<Utf16> toUtf16(String s) {
     final units = s.codeUnits;
     final Pointer<Uint16> result = allocate<Uint16>(count: units.length + 1);
-    final Uint16List nativeString =
-        result.asExternalTypedData(count: units.length + 1);
+    final Uint16List nativeString = result.asTypedList(units.length + 1);
     nativeString.setAll(0, units);
     nativeString[units.length] = 0;
     return result.cast();
diff --git a/lib/src/utf8.dart b/lib/src/utf8.dart
index 640da80..df8f1f2 100644
--- a/lib/src/utf8.dart
+++ b/lib/src/utf8.dart
@@ -19,13 +19,13 @@
 /// native function signatures.
 //
 // TODO(https://github.com/dart-lang/ffi/issues/4): No need to use
-// 'asExternalTypedData' when Pointer operations are performant.
+// 'asTypedList' when Pointer operations are performant.
 class Utf8 extends Struct {
   /// Returns the length of a null-terminated string -- the number of (one-byte)
   /// characters before the first null byte.
   static int strlen(Pointer<Utf8> string) {
     final Pointer<Uint8> array = string.cast<Uint8>();
-    final Uint8List nativeString = array.asExternalTypedData(count: _maxSize);
+    final Uint8List nativeString = array.asTypedList(_maxSize);
     return nativeString.indexWhere((char) => char == 0);
   }
 
@@ -41,9 +41,7 @@
   static String fromUtf8(Pointer<Utf8> string) {
     final int length = strlen(string);
     return utf8.decode(Uint8List.view(
-        string.cast<Uint8>().asExternalTypedData(count: length).buffer,
-        0,
-        length));
+        string.cast<Uint8>().asTypedList(length).buffer, 0, length));
   }
 
   /// Convert a [String] to a Utf8-encoded null-terminated C string.
@@ -56,8 +54,7 @@
   static Pointer<Utf8> toUtf8(String string) {
     final units = utf8.encode(string);
     final Pointer<Uint8> result = allocate<Uint8>(count: units.length + 1);
-    final Uint8List nativeString =
-        result.asExternalTypedData(count: units.length + 1);
+    final Uint8List nativeString = result.asTypedList(units.length + 1);
     nativeString.setAll(0, units);
     nativeString[units.length] = 0;
     return result.cast();
diff --git a/test/utf16_test.dart b/test/utf16_test.dart
index 99863e8..f55cb3b 100644
--- a/test/utf16_test.dart
+++ b/test/utf16_test.dart
@@ -12,8 +12,7 @@
   test("toUtf16 ASCII", () {
     final String start = "Hello World!\n";
     final Pointer<Uint16> converted = Utf16.toUtf16(start).cast();
-    final Uint16List end =
-        converted.asExternalTypedData(count: start.codeUnits.length + 1);
+    final Uint16List end = converted.asTypedList(start.codeUnits.length + 1);
     final matcher = equals(start.codeUnits.toList()..add(0));
     expect(end, matcher);
     free(converted);
@@ -23,8 +22,7 @@
     final String start = "😎";
     final Pointer<Utf16> converted = Utf16.toUtf16(start).cast();
     final int length = start.codeUnits.length;
-    final Uint16List end =
-        converted.cast<Uint16>().asExternalTypedData(count: length + 1);
+    final Uint16List end = converted.cast<Uint16>().asTypedList(length + 1);
     final matcher = equals(start.codeUnits.toList()..add(0));
     expect(end, matcher);
     free(converted);
diff --git a/test/utf8_test.dart b/test/utf8_test.dart
index 5b92fce..8e9937f 100644
--- a/test/utf8_test.dart
+++ b/test/utf8_test.dart
@@ -10,7 +10,7 @@
 
 Pointer<Uint8> _bytesFromList(List<int> ints) {
   final Pointer<Uint8> ptr = allocate(count: ints.length);
-  final Uint8List list = ptr.asExternalTypedData(count: ints.length);
+  final Uint8List list = ptr.asTypedList(ints.length);
   list.setAll(0, ints);
   return ptr;
 }
@@ -19,8 +19,7 @@
   test("toUtf8 ASCII", () {
     final String start = "Hello World!\n";
     final Pointer<Uint8> converted = Utf8.toUtf8(start).cast();
-    final Uint8List end =
-        converted.asExternalTypedData(count: start.length + 1);
+    final Uint8List end = converted.asTypedList(start.length + 1);
     final matcher =
         equals([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 10, 0]);
     expect(end, matcher);
@@ -38,8 +37,7 @@
     final String start = "πŸ˜ŽπŸ‘ΏπŸ’¬";
     final Pointer<Utf8> converted = Utf8.toUtf8(start).cast();
     final int length = Utf8.strlen(converted);
-    final Uint8List end =
-        converted.cast<Uint8>().asExternalTypedData(count: length + 1);
+    final Uint8List end = converted.cast<Uint8>().asTypedList(length + 1);
     final matcher =
         equals([240, 159, 152, 142, 240, 159, 145, 191, 240, 159, 146, 172, 0]);
     expect(end, matcher);
@@ -57,8 +55,7 @@
     final String start = String.fromCharCodes([0xD800, 0x1000]);
     final Pointer<Utf8> converted = Utf8.toUtf8(start).cast();
     final int length = Utf8.strlen(converted);
-    final Uint8List end =
-        converted.cast<Uint8>().asExternalTypedData(count: length + 1);
+    final Uint8List end = converted.cast<Uint8>().asTypedList(length + 1);
     expect(end, equals([237, 160, 128, 225, 128, 128, 0]));
     free(converted);
   });