| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2015, the Dartino 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.md file. | |
| 4 | |
| 5 // Construction and transformation utilities. | |
| 6 | |
| 7 import 'todomvc_presenter_model.dart'; | |
| 8 | |
| 9 Bool truth(bool value, [previous]) => | |
| 10 (previous is Bool && previous.value == value) ? previous : new Bool(value); | |
| 11 | |
| 12 Str str(String value, [previous]) => | |
| 13 (previous is Str && previous.value == value) ? previous : new Str(value); | |
| 14 | |
| 15 Nil nil([previous]) => (previous is Nil) ? previous : new Nil(); | |
| 16 | |
| 17 Cons cons(fst, snd, [deleteEvent, completeEvent, uncompleteEvent, previous]) { | |
| 18 if (previous is Cons) { | |
| 19 bool equal = true; | |
| 20 if (fst == previous.fst) { | |
| 21 fst = previous.fst; | |
| 22 } else { | |
| 23 equal = false; | |
| 24 } | |
| 25 if (snd == previous.snd) { | |
| 26 snd = previous.snd; | |
| 27 } else { | |
| 28 equal = false; | |
| 29 } | |
| 30 if (deleteEvent == previous.deleteEvent) { | |
| 31 deleteEvent = previous.deleteEvent; | |
| 32 } else { | |
| 33 equal = false; | |
| 34 } | |
| 35 if (completeEvent == previous.completeEvent) { | |
| 36 completeEvent = previous.completeEvent; | |
| 37 } else { | |
| 38 equal = false; | |
| 39 } | |
| 40 if (uncompleteEvent == previous.uncompleteEvent) { | |
| 41 uncompleteEvent = previous.uncompleteEvent; | |
| 42 } else { | |
| 43 equal = false; | |
| 44 } | |
| 45 if (equal) { | |
| 46 return previous; | |
| 47 } | |
| 48 } | |
| 49 return new Cons(fst, snd, deleteEvent, completeEvent, uncompleteEvent); | |
| 50 } | |
| 51 | |
| 52 Immutable getConsFst(Immutable node) => (node is Cons) ? node.fst : null; | |
| 53 Immutable getConsSnd(Immutable node) => (node is Cons) ? node.snd : null; | |
| OLD | NEW |