22 lines
539 B
Factor
22 lines
539 B
Factor
! Copyright (C) 2008 Slava Pestov.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: accessors models kernel assocs ;
|
|
IN: models.mapping
|
|
|
|
TUPLE: mapping < model assoc ;
|
|
|
|
: <mapping> ( models -- mapping )
|
|
f mapping new-model
|
|
over values >>dependencies
|
|
swap >>assoc ;
|
|
|
|
M: mapping model-changed
|
|
nip [ assoc>> [ value>> ] assoc-map ] keep set-model ;
|
|
|
|
M: mapping model-activated
|
|
dup model-changed ;
|
|
|
|
M: mapping update-model
|
|
[ value>> ] [ assoc>> ] bi
|
|
[ swapd at set-model ] curry assoc-each ;
|