23 lines
763 B
Factor
23 lines
763 B
Factor
! Copyright (C) 2008 Slava Pestov.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: alien.syntax kernel sequences ;
|
|
IN: core-foundation.arrays
|
|
|
|
TYPEDEF: void* CFArrayRef
|
|
|
|
FUNCTION: CFArrayRef CFArrayCreateMutable ( CFAllocatorRef allocator, CFIndex capacity, void* callbacks ) ;
|
|
|
|
FUNCTION: void* CFArrayGetValueAtIndex ( CFArrayRef array, CFIndex idx ) ;
|
|
|
|
FUNCTION: void CFArraySetValueAtIndex ( CFArrayRef array, CFIndex index, void* value ) ;
|
|
|
|
FUNCTION: CFIndex CFArrayGetCount ( CFArrayRef array ) ;
|
|
|
|
: CF>array ( alien -- array )
|
|
dup CFArrayGetCount [ CFArrayGetValueAtIndex ] with map ;
|
|
|
|
: <CFArray> ( seq -- alien )
|
|
[ f swap length f CFArrayCreateMutable ] keep
|
|
[ length ] keep
|
|
[ [ dupd ] dip CFArraySetValueAtIndex ] 2each ;
|