]> gitweb.factorcode.org Git - factor.git/blob - basis/core-foundation/dictionaries/dictionaries.factor
f758e0e63a3ddb3ee6ecd07f2721b7802f6bb1e7
[factor.git] / basis / core-foundation / dictionaries / dictionaries.factor
1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.syntax core-foundation kernel assocs
4 specialized-arrays.alien math sequences accessors ;
5 IN: core-foundation.dictionaries
6
7 TYPEDEF: void* CFDictionaryRef
8 TYPEDEF: void* CFMutableDictionaryRef
9 TYPEDEF: void* CFDictionaryKeyCallBacks*
10 TYPEDEF: void* CFDictionaryValueCallBacks*
11
12 FUNCTION: CFDictionaryRef CFDictionaryCreate (
13    CFAllocatorRef allocator,
14    void** keys,
15    void** values,
16    CFIndex numValues,
17    CFDictionaryKeyCallBacks* keyCallBacks,
18    CFDictionaryValueCallBacks* valueCallBacks
19 ) ;
20
21 FUNCTION: void* CFDictionaryGetValue (
22    CFDictionaryRef theDict,
23    void* key
24 ) ;
25
26 : <CFDictionary> ( alist -- dictionary )
27     [ kCFAllocatorDefault ] dip
28     unzip [ >void*-array ] bi@
29     [ [ underlying>> ] bi@ ] [ nip length ] 2bi
30     &: kCFTypeDictionaryKeyCallBacks
31     &: kCFTypeDictionaryValueCallBacks
32     CFDictionaryCreate ;