Line data Source code
1 : // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2 : // for details. All rights reserved. Use of this source code is governed by a
3 : // BSD-style license that can be found in the LICENSE file.
4 :
5 : import 'dart:async';
6 :
7 : import '../result.dart';
8 : import 'error.dart';
9 :
10 : /// A result representing a returned value.
11 : class ValueResult<T> implements Result<T> {
12 : final T value;
13 :
14 : bool get isValue => true;
15 : bool get isError => false;
16 : ValueResult<T> get asValue => this;
17 : ErrorResult<T> get asError => null;
18 :
19 0 : ValueResult(this.value);
20 :
21 : void complete(Completer<T> completer) {
22 0 : completer.complete(value);
23 : }
24 :
25 : void addTo(EventSink<T> sink) {
26 0 : sink.add(value);
27 : }
28 :
29 0 : Future<T> get asFuture => new Future.value(value);
30 : }
|