Index: mojo/public/dart/third_party/barback/lib/src/asset/asset.dart |
diff --git a/mojo/public/dart/third_party/barback/lib/src/asset/asset.dart b/mojo/public/dart/third_party/barback/lib/src/asset/asset.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c0f11bade6c0f8e5aa80bc6abb1cc0be5920e9d6 |
--- /dev/null |
+++ b/mojo/public/dart/third_party/barback/lib/src/asset/asset.dart |
@@ -0,0 +1,50 @@ |
+// Copyright (c) 2013, the Dart 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. |
+ |
+library barback.asset.asset; |
+ |
+import 'dart:async'; |
+import 'dart:io'; |
+import 'dart:convert'; |
+ |
+import 'asset_id.dart'; |
+import 'internal_asset.dart'; |
+ |
+/// A blob of content. |
+/// |
+/// Assets may come from the file system, or as the output of a [Transformer]. |
+/// They are identified by [AssetId]. |
+/// |
+/// Custom implementations of [Asset] are not currently supported. |
+abstract class Asset { |
+ /// The ID for this asset. |
+ final AssetId id; |
+ |
+ factory Asset.fromBytes(AssetId id, List<int> bytes) => |
+ new BinaryAsset(id, bytes); |
+ |
+ factory Asset.fromFile(AssetId id, File file) => |
+ new FileAsset(id, file.path); |
+ |
+ factory Asset.fromString(AssetId id, String content) => |
+ new StringAsset(id, content); |
+ |
+ factory Asset.fromPath(AssetId id, String path) => |
+ new FileAsset(id, path); |
+ |
+ factory Asset.fromStream(AssetId id, Stream<List<int>> stream) => |
+ new StreamAsset(id, stream); |
+ |
+ /// Returns the contents of the asset as a string. |
+ /// |
+ /// If the asset was created from a [String] the original string is always |
+ /// returned and [encoding] is ignored. Otherwise, the binary data of the |
+ /// asset is decoded using [encoding], which defaults to [UTF8]. |
+ Future<String> readAsString({Encoding encoding}); |
+ |
+ /// Streams the binary contents of the asset. |
+ /// |
+ /// If the asset was created from a [String], this returns its UTF-8 encoding. |
+ Stream<List<int>> read(); |
+} |