diff options
Diffstat (limited to 'stdlib/source/lux/data/collection/dictionary/plist.lux')
-rw-r--r-- | stdlib/source/lux/data/collection/dictionary/plist.lux | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/stdlib/source/lux/data/collection/dictionary/plist.lux b/stdlib/source/lux/data/collection/dictionary/plist.lux index 8b2bef218..2f4593fac 100644 --- a/stdlib/source/lux/data/collection/dictionary/plist.lux +++ b/stdlib/source/lux/data/collection/dictionary/plist.lux @@ -1,7 +1,10 @@ (.module: [lux #* [data - [text ("text/." Equivalence<Text>)]]]) + ["." product] + [text ("text/." Equivalence<Text>)] + [collection + [list ("list/." Functor<List>)]]]]) (type: #export (PList a) (List [Text a])) @@ -17,6 +20,15 @@ (#.Some v') (get key properties')))) +(do-template [<name> <type> <access>] + [(def: #export <name> + (All [a] (-> (PList a) (List <type>))) + (list/map <access>))] + + [keys Text product.left] + [values a product.right] + ) + (def: #export (contains? key properties) (All [a] (-> Text (PList a) Bit)) (case (get key properties) |