commit | 42bf782333a6594448f759e7935420dfeca37382 | [log] [tgz] |
---|---|---|
author | Todd Volkert <tvolkert@users.noreply.github.com> | Fri Feb 03 16:33:53 2017 -0800 |
committer | GitHub <noreply@github.com> | Fri Feb 03 16:33:53 2017 -0800 |
tree | 9bc222ed125ed32524ff46236595591e314a80ee | |
parent | e0aca538297c9e35ea671ad91f992a02285dfb35 [diff] |
Add ResultReference<T> to record_replay library. (#18) This introduces a level of indirection that will allow recording objects to differentiate between the invocation result return value, the recorded result value, and the serialized result value. This is used to provide "special handling" of certain invocation results (such as byte arrays) to make recordings more human-readable & editable. This design also yields more technical correctness over the previous design. This is because we used to delay recording an invocation whose result was a Future until that future completed. Now, we record the invocation immediately and late-record future results (with support for awaiting those futures when serializing a recoridng). Another step in #11
A generic file system abstraction for Dart.
Like dart:io
, package:file
supplies a rich Dart-idiomatic API for accessing a file system.
Unlike dart:io
, package:file
:
Implement your own custom file system:
import 'package:file/file.dart'; class FooBarFileSystem implements FileSystem { ... }
Use the in-memory file system:
import 'package:file/memory.dart'; var fs = new MemoryFileSystem();
Use the local file system (requires dart:io access):
import 'package:file/local.dart'; var fs = const LocalFileSystem();