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 ;
 |