]> gitweb.factorcode.org Git - factor.git/blob - basis/models/mapping/mapping.factor
core, basis, extra: Remove DOS line endings from files.
[factor.git] / basis / models / mapping / mapping.factor
1 ! Copyright (C) 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors models kernel assocs ;
4 IN: models.mapping
5
6 TUPLE: mapping < model assoc ;
7
8 : <mapping> ( models -- mapping )
9     f mapping new-model
10         over values >>dependencies
11         swap >>assoc ;
12
13 M: mapping model-changed
14     nip [ assoc>> [ value>> ] assoc-map ] keep set-model ;
15
16 M: mapping model-activated
17     dup model-changed ;
18
19 M: mapping update-model
20     [ value>> ] [ assoc>> ] bi
21     [ swapd at set-model ] curry assoc-each ;