factor/basis/models/mapping/mapping.factor

22 lines
560 B
Factor
Raw Normal View History

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