Objectively 1.0.0
Ultra-lightweight object oriented framework for GNU C.
Data Structures | Typedefs | Functions
Array.h File Reference

Immutable arrays. More...

#include <stdarg.h>
#include <Objectively/Object.h>

Go to the source code of this file.

Data Structures

struct  Array
 Immutable arrays. More...
 

Typedefs

typedef void(* ArrayEnumerator) (const Array *array, ident obj, ident data)
 A function pointer for Array enumeration (iteration). More...
 

Functions

OBJECTIVELY_EXPORT Class_Array (void)
 

Detailed Description

Immutable arrays.

Definition in file Array.h.

Typedef Documentation

◆ ArrayEnumerator

typedef void(* ArrayEnumerator) (const Array *array, ident obj, ident data)

A function pointer for Array enumeration (iteration).

Parameters
arrayThe Array.
objThe Object for the current iteration.
dataUser data.

Definition at line 49 of file Array.h.

Function Documentation

◆ _Array()

OBJECTIVELY_EXPORT Class * _Array ( void  )

Definition at line 470 of file Array.c.

470 {
471 static Class *clazz;
472 static Once once;
473
474 do_once(&once, {
475 clazz = _initialize(&(const ClassDef) {
476 .name = "Array",
477 .superclass = _Object(),
478 .instanceSize = sizeof(Array),
479 .interfaceOffset = offsetof(Array, interface),
480 .interfaceSize = sizeof(ArrayInterface),
482 });
483 });
484
485 return clazz;
486}
static void initialize(Class *clazz)
Definition: Array.c:436
Class * _initialize(const ClassDef *def)
Initializes the given Class.
Definition: Class.c:91
long Once
The Once type.
Definition: Once.h:37
#define do_once(once, block)
Executes the given block at most one time.
Definition: Once.h:43
Immutable arrays.
Definition: Array.h:56
ClassDefs are passed to _initialize via an archetype to initialize a Class.
Definition: Class.h:41
The runtime representation of a Class.
Definition: Class.h:95
Class * _Object(void)
The Object archetype.
Definition: Object.c:136