OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011, 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 interface Link<T> extends Iterable<T> default LinkFactory<T> { | |
6 final T head; | |
7 final Link<T> tail; | |
8 | |
9 Link(T head, [Link<T> tail]); | |
10 Link.fromList(List<T> list); | |
11 | |
12 Link<T> prepend(T element); | |
13 List<T> toList(); | |
14 bool isEmpty(); | |
15 Link<T> reverse(); | |
16 Link<T> reversePrependAll(Link<T> from); | |
17 | |
18 void printOn(StringBuffer buffer, [separatedBy]); | |
19 | |
20 void forEach(void f(T element)); | |
21 } | |
22 | |
23 interface EmptyLink<T> extends Link<T> default LinkTail<T> { | |
24 const EmptyLink(); | |
25 } | |
26 | |
27 interface LinkBuilder<T> default LinkBuilderImplementation<T> { | |
28 LinkBuilder(); | |
29 | |
30 Link<T> toLink(); | |
31 void addLast(T t); | |
32 | |
33 final int length; | |
34 } | |
OLD | NEW |