]> gitweb.factorcode.org Git - factor.git/blob - basis/core-foundation/arrays/arrays.factor
core: map-integers -> map-integers-as
[factor.git] / basis / core-foundation / arrays / arrays.factor
1 ! Copyright (C) 2008, 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.c-types alien.syntax core-foundation fry kernel
4 sequences ;
5 IN: core-foundation.arrays
6
7 TYPEDEF: void* CFArrayRef
8
9 FUNCTION: CFArrayRef CFArrayCreateMutable ( CFAllocatorRef allocator, CFIndex capacity, void* callbacks )
10
11 FUNCTION: void* CFArrayGetValueAtIndex ( CFArrayRef array, CFIndex idx )
12
13 FUNCTION: void CFArraySetValueAtIndex ( CFArrayRef array, CFIndex index, void* value )
14
15 FUNCTION: CFIndex CFArrayGetCount ( CFArrayRef array )
16
17 : CF>array ( alien -- array )
18     dup CFArrayGetCount
19     [ CFArrayGetValueAtIndex ] with map-integers ;
20
21 : <CFArray> ( seq -- alien )
22     f over length &: kCFTypeArrayCallBacks CFArrayCreateMutable
23     [ '[ [ _ ] 2dip swap CFArraySetValueAtIndex ] each-index ] keep ;