]> gitweb.factorcode.org Git - factor.git/blob - basis/alien/enums/enums-docs.factor
922aa260a8808dca077a09a8d638bea1c333d08f
[factor.git] / basis / alien / enums / enums-docs.factor
1 ! Copyright (C) 2010 Erik Charlebois.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.c-types alien.syntax help.markup help.syntax words ;
4 IN: alien.enums
5
6 HELP: define-enum
7 { $values
8     { "word" word } { "base-type" c-type } { "members" "sequence of word and value pairs" }
9 }
10 { $description "Defines an enum. This is the run-time equivalent of " { $link POSTPONE: ENUM: } "." } ;
11
12 HELP: enum>number
13 { $values
14     { "enum" "an enum word" }
15     { "number" "the corresponding number value" }
16 }
17 { $description "Converts an enum to a number." } ;
18
19 HELP: number>enum
20 { $values
21     { "number" "an enum number" } { "enum-c-type" "an enum type" }
22     { "enum" "the corresponding enum word" }
23 }
24 { $description "Convert a number to an enum." } ;
25
26 ARTICLE: "alien.enums" "Enumeration types"
27 "The " { $vocab-link "alien.enums" } " vocab contains the implementation for " { $link POSTPONE: ENUM: } " C types, and provides words for converting between enum singletons and integers. It is possible to dispatch off of members of an enum."
28 $nl
29 "Defining enums at run-time:"
30 { $subsection define-enum }
31 "Conversions between enums and integers:"
32 { $subsections enum>number number>enum } ;
33
34 { POSTPONE: ENUM: define-enum enum>number number>enum } related-words
35
36 ABOUT: "alien.enums"