Use match-event more

This commit is contained in:
Tony Garnock-Jones 2016-03-01 16:56:58 -05:00
parent a71e138e79
commit ed3877e7b1
1 changed files with 4 additions and 6 deletions

View File

@ -21,7 +21,7 @@
(core:assert (file name new-content))))) (core:assert (file name new-content)))))
(define ((file-observation-event-handler name) e content) (define ((file-observation-event-handler name) e content)
(match e (match-event e
[(? patch? p) [(? patch? p)
(if (set-empty? (project-assertions (patch-removed p) (observe (file (?!) ?)))) (if (set-empty? (project-assertions (patch-removed p) (observe (file (?!) ?))))
#f #f
@ -30,11 +30,10 @@
[(message (save (file (== name) new-content))) [(message (save (file (== name) new-content)))
(update-file content name new-content)] (update-file content name new-content)]
[(message (delete (== name))) [(message (delete (== name)))
(update-file content name #f)] (update-file content name #f)]))
[_ #f]))
(define (file-system-event-handler e files) (define (file-system-event-handler e files)
(match e (match-event e
[(? patch? p) [(? patch? p)
(transition files (transition files
(for-trie/list [((observe (file $name _)) (patch-added p))] (for-trie/list [((observe (file $name _)) (patch-added p))]
@ -49,8 +48,7 @@
[(message (save (file name new-content))) [(message (save (file name new-content)))
(transition (hash-set files name new-content) '())] (transition (hash-set files name new-content) '())]
[(message (delete name)) [(message (delete name))
(transition (hash-remove files name) '())] (transition (hash-remove files name) '())]))
[_ #f]))
(spawn file-system-event-handler (spawn file-system-event-handler
(hash) (hash)