]> gitweb.factorcode.org Git - factor.git/blob - basis/core-foundation/dictionaries/dictionaries.factor
Specialized array overhaul
[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 math sequences accessors ;
5 IN: core-foundation.dictionaries
6
7 SPECIALIZED-ARRAY: void*
8
9 TYPEDEF: void* CFDictionaryRef
10 TYPEDEF: void* CFMutableDictionaryRef
11 TYPEDEF: void* CFDictionaryKeyCallBacks*
12 TYPEDEF: void* CFDictionaryValueCallBacks*
13
14 FUNCTION: CFDictionaryRef CFDictionaryCreate (
15    CFAllocatorRef allocator,
16    void** keys,
17    void** values,
18    CFIndex numValues,
19    CFDictionaryKeyCallBacks* keyCallBacks,
20    CFDictionaryValueCallBacks* valueCallBacks
21 ) ;
22
23 FUNCTION: void* CFDictionaryGetValue (
24    CFDictionaryRef theDict,
25    void* key
26 ) ;
27
28 : <CFDictionary> ( alist -- dictionary )
29     [ kCFAllocatorDefault ] dip
30     unzip [ >void*-array ] bi@
31     [ [ underlying>> ] bi@ ] [ nip length ] 2bi
32     &: kCFTypeDictionaryKeyCallBacks
33     &: kCFTypeDictionaryValueCallBacks
34     CFDictionaryCreate ;