- New const enum declaration syntax.

- New enum associated value syntax.
This commit is contained in:
Christoffer Lerno
2026-02-12 14:43:56 +01:00
parent f079fa82b2
commit acc4a900f5
59 changed files with 751 additions and 701 deletions

View File

@@ -3,30 +3,30 @@ module std::os::android @if(env::ANDROID);
enum AndroidLogPriority : (CInt val)
{
ANDROID_LOG_UNKNOWN = 0,
ANDROID_LOG_DEFAULT = 1,
ANDROID_LOG_VERBOSE = 2,
ANDROID_LOG_DEBUG = 3,
ANDROID_LOG_INFO = 4,
ANDROID_LOG_WARN = 5,
ANDROID_LOG_ERROR = 6,
ANDROID_LOG_FATAL = 7,
ANDROID_LOG_SILENT = 8
ANDROID_LOG_UNKNOWN { 0 },
ANDROID_LOG_DEFAULT { 1 },
ANDROID_LOG_VERBOSE { 2 },
ANDROID_LOG_DEBUG { 3 },
ANDROID_LOG_INFO { 4 },
ANDROID_LOG_WARN { 5 },
ANDROID_LOG_ERROR { 6 },
ANDROID_LOG_FATAL { 7 },
ANDROID_LOG_SILENT { 8 }
}
enum AndroidLogId : (CInt val)
{
LOG_ID_MIN = 0,
LOG_ID_MAIN = 0,
LOG_ID_RADIO = 1,
LOG_ID_EVENTS = 2,
LOG_ID_SYSTEM = 3,
LOG_ID_CRASH = 4,
LOG_ID_STATS = 5,
LOG_ID_SECURITY = 6,
LOG_ID_KERNEL = 7,
LOG_ID_MAX = 7,
LOG_ID_DEFAULT = 0x7FFFFFFF
LOG_ID_MIN { 0 },
LOG_ID_MAIN { 0 },
LOG_ID_RADIO { 1 },
LOG_ID_EVENTS { 2 },
LOG_ID_SYSTEM { 3 },
LOG_ID_CRASH { 4 },
LOG_ID_STATS { 5 },
LOG_ID_SECURITY { 6 },
LOG_ID_KERNEL { 7 },
LOG_ID_MAX { 7 },
LOG_ID_DEFAULT { 0x7FFFFFFF }
}
struct AndroidLogMessage @packed

View File

@@ -18,23 +18,23 @@ const uint EPOLLWAKEUP = EpollEvents.EPOLLWAKEUP;
const uint EPOLLONESHOT = EpollEvents.EPOLLONESHOT;
const uint EPOLLET = EpollEvents.EPOLLET;
enum EpollEvents: const inline uint
const enum EpollEvents : inline uint
{
EPOLLIN = 0x001,
EPOLLPRI = 0x002,
EPOLLOUT = 0x004,
EPOLLRDNORM = 0x040,
EPOLLRDBAND = 0x080,
EPOLLWRNORM = 0x100,
EPOLLWRBAND = 0x200,
EPOLLMSG = 0x400,
EPOLLERR = 0x008,
EPOLLHUP = 0x010,
EPOLLRDHUP = 0x2000,
EPOLLIN = 0x001,
EPOLLPRI = 0x002,
EPOLLOUT = 0x004,
EPOLLRDNORM = 0x040,
EPOLLRDBAND = 0x080,
EPOLLWRNORM = 0x100,
EPOLLWRBAND = 0x200,
EPOLLMSG = 0x400,
EPOLLERR = 0x008,
EPOLLHUP = 0x010,
EPOLLRDHUP = 0x2000,
EPOLLEXCLUSIVE = 1u << 28,
EPOLLWAKEUP = 1u << 29,
EPOLLONESHOT = 1u << 30,
EPOLLET = 1u << 31
EPOLLWAKEUP = 1u << 29,
EPOLLONESHOT = 1u << 30,
EPOLLET = 1u << 31
}
/* Valid opcodes ( "op" parameter ) to issue to epoll_ctl(). */

View File

@@ -40,7 +40,7 @@ extern fn CFTypeRef CFType.retain(&self) @cname("CFRetain");
extern fn void CFType.release(&self) @cname("CFRelease");
extern fn CFIndex CFType.getRetainCount(&self) @cname("CFGetRetainCount");
enum CFStringEncoding : const uint
const enum CFStringEncoding : uint
{
INVALID_ID = 0xffffffffU,
MAC_ROMAN = 0,

View File

@@ -1,7 +1,7 @@
module std::os::darwin @if(env::DARWIN) @link("Foundation.framework");
import std::os::macos::cf, std::os::macos::objc, std::io;
enum NSSearchPathDomainMask : const NSUInteger
const enum NSSearchPathDomainMask : NSUInteger
{
USER = 1,
LOCAL = 2,
@@ -10,7 +10,7 @@ enum NSSearchPathDomainMask : const NSUInteger
ALL = 0x0ffff
}
enum NSSearchPathDirectory : const NSUInteger
const enum NSSearchPathDirectory : NSUInteger
{
APPLICATION = 1,
DEMO_APPLICATION,
@@ -44,8 +44,6 @@ enum NSSearchPathDirectory : const NSUInteger
// real signature in Foundation
extern fn CFArrayRef nsSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory, NSSearchPathDomainMask domainMask, bool expandTilde) @cname("NSSearchPathForDirectoriesInDomains");
fn String? find_first_directory_temp(NSSearchPathDirectory directory, NSSearchPathDomainMask domainMask)
{
objc::@autoreleasepool()

View File

@@ -77,18 +77,18 @@ import std::os::macos::cf;
enum StatusItemLength : (double val) @deprecated("Use NSStatusItemLength.")
{
VARIABLE = -1.0,
SQUARE = -2.0,
VARIABLE { -1.0 },
SQUARE { -2.0 },
}
enum ApplicationActivationPolicy : (int val) @deprecated("Use NSApplicationActivationPolicy.")
{
REGULAR = 0,
ACCESSORY = 1,
PROHIBITED = 2,
REGULAR { 0 },
ACCESSORY { 1 },
PROHIBITED { 2 },
}
enum NSApplicationActivationPolicy : const inline NSInteger
const enum NSApplicationActivationPolicy : inline NSInteger
{
REGULAR = 0,
ACCESSORY = 1,
@@ -97,29 +97,29 @@ enum NSApplicationActivationPolicy : const inline NSInteger
enum WindowStyleMask : (int val) @deprecated("Use NSWindowStyleMask.")
{
BORDERLESS = 0,
TITLED = 1 << 0,
CLOSABLE = 1 << 1,
MINIATURIZABLE = 1 << 2,
RESIZABLE = 1 << 3,
TEXTURED_BACKGROUND = 1 << 8,
UNIFIED_TITLE_AND_TOOLBAR = 1 << 12,
FULL_SCREEN = 1 << 14,
FULL_SIZE_CONTENT_VIEW = 1 << 15,
UTILITY_WINDOW = 1 << 4,
DOC_MODAL_WINDOW = 1 << 6,
NONACTIVATING_PANEL = 1 << 7,
HUD_WINDOW = 1 << 13
BORDERLESS { 0 },
TITLED { 1 << 0 },
CLOSABLE { 1 << 1 },
MINIATURIZABLE { 1 << 2 },
RESIZABLE { 1 << 3 },
TEXTURED_BACKGROUND { 1 << 8 },
UNIFIED_TITLE_AND_TOOLBAR { 1 << 12 },
FULL_SCREEN { 1 << 14 },
FULL_SIZE_CONTENT_VIEW { 1 << 15 },
UTILITY_WINDOW { 1 << 4 },
DOC_MODAL_WINDOW { 1 << 6 },
NONACTIVATING_PANEL { 1 << 7 },
HUD_WINDOW { 1 << 13 }
}
enum BackingStore : (int val) @deprecated("Use NSBackingStoreType.")
{
RETAINED = 0,
NONRETAINED = 1,
BUFFERED = 2
RETAINED { 0 },
NONRETAINED { 1 },
BUFFERED { 2 }
}
enum NSBackingStoreType : const inline NSUInteger
const enum NSBackingStoreType : inline NSUInteger
{
RETAINED = 0,
NONRETAINED = 1,
@@ -128,43 +128,43 @@ enum NSBackingStoreType : const inline NSUInteger
enum EventType : (long val) @deprecated("Use NSEventType.")
{
LEFT_MOUSE_DOWN = 1,
LEFT_MOUSE_UP = 2,
RIGHT_MOUSE_DOWN = 3,
RIGHT_MOUSE_UP = 4,
MOUSE_MOVED = 5,
LEFT_MOUSE_DRAGGED = 6,
RIGHT_MOUSE_DRAGGED = 7,
MOUSE_ENTERED = 8,
MOUSE_EXITED = 9,
KEY_DOWN = 10,
KEY_UP = 11,
FLAGS_CHANGED = 12,
APPKIT_DEFINED = 13,
SYSTEM_DEFINED = 14,
APPLICATION_DEFINED = 15,
PERIODIC = 16,
CURSOR_UPDATE = 17,
SCROLL_WHEEL = 22,
TABLET_POINT = 23,
TABLET_PROXIMITY = 24,
OTHER_MOUSE_DOWN = 25,
OTHER_MOUSE_UP = 26,
OTHER_MOUSE_DRAGGED = 27,
GESTURE = 29,
MAGNIFY = 30,
SWIPE = 31,
ROTATE = 18,
BEGIN_GESTURE = 19,
END_GESTURE = 20,
SMART_MAGNIFY = 32,
QUICK_LOOK = 33,
PRESSURE = 34,
DIRECT_TOUCH = 37,
CHANGE_MODE = 38,
LEFT_MOUSE_DOWN { 1 },
LEFT_MOUSE_UP { 2 },
RIGHT_MOUSE_DOWN { 3 },
RIGHT_MOUSE_UP { 4 },
MOUSE_MOVED { 5 },
LEFT_MOUSE_DRAGGED { 6 },
RIGHT_MOUSE_DRAGGED { 7 },
MOUSE_ENTERED { 8 },
MOUSE_EXITED { 9 },
KEY_DOWN { 10 },
KEY_UP { 11 },
FLAGS_CHANGED { 12 },
APPKIT_DEFINED { 13 },
SYSTEM_DEFINED { 14 },
APPLICATION_DEFINED { 15 },
PERIODIC { 16 },
CURSOR_UPDATE { 17 },
SCROLL_WHEEL { 22 },
TABLET_POINT { 23 },
TABLET_PROXIMITY { 24 },
OTHER_MOUSE_DOWN { 25 },
OTHER_MOUSE_UP { 26 },
OTHER_MOUSE_DRAGGED { 27 },
GESTURE { 29 },
MAGNIFY { 30 },
SWIPE { 31 },
ROTATE { 18 },
BEGIN_GESTURE { 19 },
END_GESTURE { 20 },
SMART_MAGNIFY { 32 },
QUICK_LOOK { 33 },
PRESSURE { 34 },
DIRECT_TOUCH { 37 },
CHANGE_MODE { 38 },
}
enum NSEventType : const inline NSUInteger
const enum NSEventType : inline NSUInteger
{
LEFT_MOUSE_DOWN = 1,
LEFT_MOUSE_UP = 2,
@@ -246,41 +246,41 @@ fn EventType? event_type_from(int val) @deprecated("Use NSEventType directly.")
enum EventMask : (long val) @deprecated("Use NSEventMask.")
{
LEFT_MOUSE_DOWN = 1 << EventType.LEFT_MOUSE_DOWN.val,
LEFT_MOUSE_UP = 1 << EventType.LEFT_MOUSE_UP.val,
RIGHT_MOUSE_DOWN = 1 << EventType.RIGHT_MOUSE_DOWN.val,
RIGHT_MOUSE_UP = 1 << EventType.RIGHT_MOUSE_UP.val,
MOUSE_MOVED = 1 << EventType.MOUSE_MOVED.val,
LEFT_MOUSE_DRAGGED = 1 << EventType.LEFT_MOUSE_DRAGGED.val,
RIGHT_MOUSE_DRAGGED = 1 << EventType.RIGHT_MOUSE_DRAGGED.val,
MOUSE_ENTERED = 1 << EventType.MOUSE_ENTERED.val,
MOUSE_EXITED = 1 << EventType.MOUSE_EXITED.val,
KEY_DOWN = 1 << EventType.KEY_DOWN.val,
KEY_UP = 1 << EventType.KEY_UP.val,
FLAGS_CHANGED = 1 << EventType.FLAGS_CHANGED.val,
APPKIT_DEFINED = 1 << EventType.APPKIT_DEFINED.val,
SYSTEM_DEFINED = 1 << EventType.SYSTEM_DEFINED.val,
APPLICATION_DEFINED = 1 << EventType.APPLICATION_DEFINED.val,
PERIODIC = 1 << EventType.PERIODIC.val,
CURSOR_UPDATE = 1 << EventType.CURSOR_UPDATE.val,
SCROLL_WHEEL = 1 << EventType.SCROLL_WHEEL.val,
TABLET_POINT = 1 << EventType.TABLET_POINT.val,
TABLET_PROXIMITY = 1 << EventType.TABLET_PROXIMITY.val,
OTHER_MOUSE_DOWN = 1 << EventType.OTHER_MOUSE_DOWN.val,
OTHER_MOUSE_UP = 1 << EventType.OTHER_MOUSE_UP.val,
OTHER_MOUSE_DRAGGED = 1 << EventType.OTHER_MOUSE_DRAGGED.val,
GESTURE = 1 << EventType.GESTURE.val,
MAGNIFY = 1 << EventType.MAGNIFY.val,
SWIPE = 1 << EventType.SWIPE.val,
ROTATE = 1 << EventType.ROTATE.val,
BEGIN_GESTURE = 1 << EventType.BEGIN_GESTURE.val,
END_GESTURE = 1 << EventType.END_GESTURE.val,
SMART_MAGNIFY = 1L << EventType.SMART_MAGNIFY.val,
DIRECT_TOUCH = 1L << EventType.DIRECT_TOUCH.val,
ANY = long.max,
LEFT_MOUSE_DOWN { 1 << EventType.LEFT_MOUSE_DOWN.val },
LEFT_MOUSE_UP { 1 << EventType.LEFT_MOUSE_UP.val },
RIGHT_MOUSE_DOWN { 1 << EventType.RIGHT_MOUSE_DOWN.val },
RIGHT_MOUSE_UP { 1 << EventType.RIGHT_MOUSE_UP.val },
MOUSE_MOVED { 1 << EventType.MOUSE_MOVED.val },
LEFT_MOUSE_DRAGGED { 1 << EventType.LEFT_MOUSE_DRAGGED.val },
RIGHT_MOUSE_DRAGGED { 1 << EventType.RIGHT_MOUSE_DRAGGED.val },
MOUSE_ENTERED { 1 << EventType.MOUSE_ENTERED.val },
MOUSE_EXITED { 1 << EventType.MOUSE_EXITED.val },
KEY_DOWN { 1 << EventType.KEY_DOWN.val },
KEY_UP { 1 << EventType.KEY_UP.val },
FLAGS_CHANGED { 1 << EventType.FLAGS_CHANGED.val },
APPKIT_DEFINED { 1 << EventType.APPKIT_DEFINED.val },
SYSTEM_DEFINED { 1 << EventType.SYSTEM_DEFINED.val },
APPLICATION_DEFINED { 1 << EventType.APPLICATION_DEFINED.val },
PERIODIC { 1 << EventType.PERIODIC.val },
CURSOR_UPDATE { 1 << EventType.CURSOR_UPDATE.val },
SCROLL_WHEEL { 1 << EventType.SCROLL_WHEEL.val },
TABLET_POINT { 1 << EventType.TABLET_POINT.val },
TABLET_PROXIMITY { 1 << EventType.TABLET_PROXIMITY.val },
OTHER_MOUSE_DOWN { 1 << EventType.OTHER_MOUSE_DOWN.val },
OTHER_MOUSE_UP { 1 << EventType.OTHER_MOUSE_UP.val },
OTHER_MOUSE_DRAGGED { 1 << EventType.OTHER_MOUSE_DRAGGED.val },
GESTURE { 1 << EventType.GESTURE.val },
MAGNIFY { 1 << EventType.MAGNIFY.val },
SWIPE { 1 << EventType.SWIPE.val },
ROTATE { 1 << EventType.ROTATE.val },
BEGIN_GESTURE { 1 << EventType.BEGIN_GESTURE.val },
END_GESTURE { 1 << EventType.END_GESTURE.val },
SMART_MAGNIFY { 1L << EventType.SMART_MAGNIFY.val },
DIRECT_TOUCH { 1L << EventType.DIRECT_TOUCH.val },
ANY { long.max },
}
enum NSEventMask : const inline ulong
const enum NSEventMask : inline ulong
{
LEFT_MOUSE_DOWN = 1ul << NSEventType.LEFT_MOUSE_DOWN,
LEFT_MOUSE_UP = 1ul << NSEventType.LEFT_MOUSE_UP,
@@ -323,17 +323,17 @@ fn NSEventMask event_mask_from_type(NSEventType type) => (NSEventMask)1ul << typ
enum EventModifierFlag : (int val) @deprecated("Use NSEventModifierFlags.")
{
CAPS_LOCK = 1 << 16,
SHIFT = 1 << 17,
CONTROL = 1 << 18,
OPTION = 1 << 19,
COMMAND = 1 << 20,
NUMERIC_PAD = 1 << 21,
FUNCTION = 1 << 23,
HELP = 1 << 22,
CAPS_LOCK { 1 << 16 },
SHIFT { 1 << 17 },
CONTROL { 1 << 18 },
OPTION { 1 << 19 },
COMMAND { 1 << 20 },
NUMERIC_PAD { 1 << 21 },
FUNCTION { 1 << 23 },
HELP { 1 << 22 },
}
enum NSEventModifierFlags : const inline NSUInteger
const enum NSEventModifierFlags : inline NSUInteger
{
CAPS_LOCK = 1 << 16,
SHIFT = 1 << 17,
@@ -346,7 +346,7 @@ enum NSEventModifierFlags : const inline NSUInteger
DEVICE_INDEPENDENT_FLAGS_MASK = 0xffff0000UL,
}
enum NSWindowCollectionBehavior : const inline NSUInteger
const enum NSWindowCollectionBehavior : inline NSUInteger
{
DEFAULT = 0,
CAN_JOIN_ALL_SPACES = 1 << 0,
@@ -366,7 +366,7 @@ enum NSWindowCollectionBehavior : const inline NSUInteger
CAN_JOIN_ALL_APPLICATIONS = 1 << 18,
}
enum NSWindowLevel : const inline NSInteger
const enum NSWindowLevel : inline NSInteger
{
NORMAL = 0,
FLOATING = 3,
@@ -379,7 +379,7 @@ enum NSWindowLevel : const inline NSInteger
SCREEN_SAVER = 1000,
}
enum NSWindowStyleMask : const inline NSUInteger
const enum NSWindowStyleMask : inline NSUInteger
{
BORDERLESS = 0,
TITLED = 1 << 0,
@@ -396,22 +396,22 @@ enum NSWindowStyleMask : const inline NSUInteger
HUD_WINDOW = 1 << 13
}
enum NSWindowTabbingMode : const inline NSInteger
const enum NSWindowTabbingMode : inline NSInteger
{
AUTOMATIC = 0,
DISALLOWED = 2,
PREFERRED = 1,
}
enum NSStatusItemLength : const inline CGFloat
const enum NSStatusItemLength : inline CGFloat
{
VARIABLE = -1.0,
SQUARE = -2.0
SQUARE = -2.0
}
enum NSApplicationTerminateReply : const inline NSUInteger
const enum NSApplicationTerminateReply : inline NSUInteger
{
CANCEL = 0,
NOW = 1,
LATER = 2,
NOW = 1,
LATER = 2,
}

View File

@@ -1,159 +1,159 @@
module std::os::win32 @if(env::WIN32);
enum Win32_CODEPAGE : const Win32_UINT
const enum Win32_CODEPAGE : Win32_UINT
{
IBM037 = 037, // IBM EBCDIC US-Canada
IBM437 = 437, // OEM United States
IBM500 = 500, // IBM EBCDIC International
ASMO_708 = 708, // Arabic (ASMO 708)
CODEPAGE_709 = 709, // Arabic (ASMO-449+, BCON V4)
CODEPAGE_710 = 710, // Arabic - Transparent Arabic
DOS_720 = 720, // Arabic (Transparent ASMO); Arabic (DOS)
IBM737 = 737, // OEM Greek (formerly 437G); Greek (DOS)
IBM775 = 775, // OEM Baltic; Baltic (DOS)
IBM850 = 850, // OEM Multilingual Latin 1; Western European (DOS)
IBM852 = 852, // OEM Latin 2; Central European (DOS)
IBM855 = 855, // OEM Cyrillic (primarily Russian)
IBM857 = 857, // OEM Turkish; Turkish (DOS)
IBM00858 = 858, // OEM Multilingual Latin 1 + Euro symbol
IBM860 = 860, // OEM Portuguese; Portuguese (DOS)
IBM861 = 861, // OEM Icelandic; Icelandic (DOS)
DOS_862 = 862, // OEM Hebrew; Hebrew (DOS)
IBM863 = 863, // OEM French Canadian; French Canadian (DOS)
IBM864 = 864, // OEM Arabic; Arabic (864)
IBM865 = 865, // OEM Nordic; Nordic (DOS)
CP866 = 866, // OEM Russian; Cyrillic (DOS)
IBM869 = 869, // OEM Modern Greek; Greek, Modern (DOS)
IBM870 = 870, // IBM EBCDIC Multilingual/ROECE (Latin 2); IBM EBCDIC Multilingual Latin 2
WINDOWS_874 = 874, // Thai (Windows)
CP875 = 875, // IBM EBCDIC Greek Modern
SHIFT_JIS = 932, // ANSI/OEM Japanese; Japanese (Shift-JIS)
GB2312 = 936, // ANSI/OEM Simplified Chinese (PRC, Singapore); Chinese Simplified (GB2312)
KS_C_5601_1987 = 949, // ANSI/OEM Korean (Unified Hangul Code)
BIG5 = 950, // ANSI/OEM Traditional Chinese (Taiwan; Hong Kong SAR, PRC); Chinese Traditional (Big5)
IBM1026 = 1026, // IBM EBCDIC Turkish (Latin 5)
IBM01047 = 1047, // IBM EBCDIC Latin 1/Open System
IBM01140 = 1140, // IBM EBCDIC US-Canada (037 + Euro symbol); IBM EBCDIC (US-Canada-Euro)
IBM01141 = 1141, // IBM EBCDIC Germany (20273 + Euro symbol); IBM EBCDIC (Germany-Euro)
IBM01142 = 1142, // IBM EBCDIC Denmark-Norway (20277 + Euro symbol); IBM EBCDIC (Denmark-Norway-Euro)
IBM01143 = 1143, // IBM EBCDIC Finland-Sweden (20278 + Euro symbol); IBM EBCDIC (Finland-Sweden-Euro)
IBM01144 = 1144, // IBM EBCDIC Italy (20280 + Euro symbol); IBM EBCDIC (Italy-Euro)
IBM01145 = 1145, // IBM EBCDIC Latin America-Spain (20284 + Euro symbol); IBM EBCDIC (Spain-Euro)
IBM01146 = 1146, // IBM EBCDIC United Kingdom (20285 + Euro symbol); IBM EBCDIC (UK-Euro)
IBM01147 = 1147, // IBM EBCDIC France (20297 + Euro symbol); IBM EBCDIC (France-Euro)
IBM01148 = 1148, // IBM EBCDIC International (500 + Euro symbol); IBM EBCDIC (International-Euro)
IBM01149 = 1149, // IBM EBCDIC Icelandic (20871 + Euro symbol); IBM EBCDIC (Icelandic-Euro)
UTF16 = 1200, // Unicode UTF-16, little endian byte order (BMP of ISO 10646); available only to managed applications
UNICODE_FFFE = 1201, // Unicode UTF-16, big endian byte order; available only to managed applications
WINDOWS_1250 = 1250, // ANSI Central European; Central European (Windows)
WINDOWS_1251 = 1251, // ANSI Cyrillic; Cyrillic (Windows)
WINDOWS_1252 = 1252, // ANSI Latin 1; Western European (Windows)
WINDOWS_1253 = 1253, // ANSI Greek; Greek (Windows)
WINDOWS_1254 = 1254, // ANSI Turkish; Turkish (Windows)
WINDOWS_1255 = 1255, // ANSI Hebrew; Hebrew (Windows)
WINDOWS_1256 = 1256, // ANSI Arabic; Arabic (Windows)
WINDOWS_1257 = 1257, // ANSI Baltic; Baltic (Windows)
WINDOWS_1258 = 1258, // ANSI/OEM Vietnamese; Vietnamese (Windows)
JOHAB = 1361, // Korean (Johab)
MACINTOSH = 10000, // MAC Roman; Western European (Mac)
X_MAC_JAPANESE = 10001, // Japanese (Mac)
X_MAC_CHINESETRAD = 10002, // MAC Traditional Chinese (Big5); Chinese Traditional (Mac)
X_MAC_KOREAN = 10003, // Korean (Mac)
X_MAC_ARABIC = 10004, // Arabic (Mac)
X_MAC_HEBREW = 10005, // Hebrew (Mac)
X_MAC_GREEK = 10006, // Greek (Mac)
X_MAC_CYRILLIC = 10007, // Cyrillic (Mac)
X_MAC_CHINESESIMP = 10008, // MAC Simplified Chinese (GB 2312); Chinese Simplified (Mac)
X_MAC_ROMANIAN = 10010, // Romanian (Mac)
X_MAC_UKRANIAN = 10017, // Ukrainian (Mac)
X_MAC_THAI = 10021, // Thai (Mac)
X_MAC_CE = 10029, // MAC Latin 2; Central European (Mac)
X_MAC_ICELANDIC = 10079, // Icelandic (Mac)
X_MAC_TURKISH = 10081, // Turkish (Mac)
X_MAC_CROATIAN = 10082, // Croatian (Mac)
UTF32 = 12000, // Unicode UTF-32, little endian byte order; available only to managed applications
UTF32BE = 12001, // Unicode UTF-32, big endian byte order; available only to managed applications
X_CHINESE_CNS = 20000, // CNS Taiwan; Chinese Traditional (CNS)
X_CP_20001 = 20001, // TCA Taiwan
X_CHINESE_ETEN = 20002, // Eten Taiwan; Chinese Traditional (Eten)
X_CP_20003 = 20003, // IBM5550 Taiwan
X_CP_20004 = 20004, // TeleText Taiwan
X_CP_20005 = 20005, // Wang Taiwan
X_IA5 = 20105, // IA5 (IRV International Alphabet No. 5, 7-bit); Western European (IA5)
X_IA5_GERMAN = 20106, // IA5 German (7-bit)
X_IA5_SWEDISH = 20107, // IA5 Swedish (7-bit)
X_IA5_NORWEGIAN = 20108, // IA5 Norwegian (7-bit)
US_ASCII = 20127, // US-ASCII (7-bit)
X_CP20261 = 20261, // T.61
X_CP20269 = 20269, // ISO 6937 Non-Spacing Accent
IBM273 = 20273, // IBM EBCDIC Germany
IBM277 = 20277, // IBM EBCDIC Denmark-Norway
IBM278 = 20278, // IBM EBCDIC Finland-Sweden
IBM280 = 20280, // IBM EBCDIC Italy
IBM284 = 20284, // IBM EBCDIC Latin America-Spain
IBM285 = 20285, // IBM EBCDIC United Kingdom
IBM290 = 20290, // IBM EBCDIC Japanese Katakana Extended
IBM297 = 20297, // IBM EBCDIC France
IBM420 = 20420, // IBM EBCDIC Arabic
IBM423 = 20423, // IBM EBCDIC Greek
IBM424 = 20424, // IBM EBCDIC Hebrew
IBM037 = 037, // IBM EBCDIC US-Canada
IBM437 = 437, // OEM United States
IBM500 = 500, // IBM EBCDIC International
ASMO_708 = 708, // Arabic (ASMO 708)
CODEPAGE_709 = 709, // Arabic (ASMO-449+, BCON V4)
CODEPAGE_710 = 710, // Arabic - Transparent Arabic
DOS_720 = 720, // Arabic (Transparent ASMO); Arabic (DOS)
IBM737 = 737, // OEM Greek (formerly 437G); Greek (DOS)
IBM775 = 775, // OEM Baltic; Baltic (DOS)
IBM850 = 850, // OEM Multilingual Latin 1; Western European (DOS)
IBM852 = 852, // OEM Latin 2; Central European (DOS)
IBM855 = 855, // OEM Cyrillic (primarily Russian)
IBM857 = 857, // OEM Turkish; Turkish (DOS)
IBM00858 = 858, // OEM Multilingual Latin 1 + Euro symbol
IBM860 = 860, // OEM Portuguese; Portuguese (DOS)
IBM861 = 861, // OEM Icelandic; Icelandic (DOS)
DOS_862 = 862, // OEM Hebrew; Hebrew (DOS)
IBM863 = 863, // OEM French Canadian; French Canadian (DOS)
IBM864 = 864, // OEM Arabic; Arabic (864)
IBM865 = 865, // OEM Nordic; Nordic (DOS)
CP866 = 866, // OEM Russian; Cyrillic (DOS)
IBM869 = 869, // OEM Modern Greek; Greek, Modern (DOS)
IBM870 = 870, // IBM EBCDIC Multilingual/ROECE (Latin 2); IBM EBCDIC Multilingual Latin 2
WINDOWS_874 = 874, // Thai (Windows)
CP875 = 875, // IBM EBCDIC Greek Modern
SHIFT_JIS = 932, // ANSI/OEM Japanese; Japanese (Shift-JIS)
GB2312 = 936, // ANSI/OEM Simplified Chinese (PRC, Singapore); Chinese Simplified (GB2312)
KS_C_5601_1987 = 949, // ANSI/OEM Korean (Unified Hangul Code)
BIG5 = 950, // ANSI/OEM Traditional Chinese (Taiwan; Hong Kong SAR, PRC); Chinese Traditional (Big5)
IBM1026 = 1026, // IBM EBCDIC Turkish (Latin 5)
IBM01047 = 1047, // IBM EBCDIC Latin 1/Open System
IBM01140 = 1140, // IBM EBCDIC US-Canada (037 + Euro symbol); IBM EBCDIC (US-Canada-Euro)
IBM01141 = 1141, // IBM EBCDIC Germany (20273 + Euro symbol); IBM EBCDIC (Germany-Euro)
IBM01142 = 1142, // IBM EBCDIC Denmark-Norway (20277 + Euro symbol); IBM EBCDIC (Denmark-Norway-Euro)
IBM01143 = 1143, // IBM EBCDIC Finland-Sweden (20278 + Euro symbol); IBM EBCDIC (Finland-Sweden-Euro)
IBM01144 = 1144, // IBM EBCDIC Italy (20280 + Euro symbol); IBM EBCDIC (Italy-Euro)
IBM01145 = 1145, // IBM EBCDIC Latin America-Spain (20284 + Euro symbol); IBM EBCDIC (Spain-Euro)
IBM01146 = 1146, // IBM EBCDIC United Kingdom (20285 + Euro symbol); IBM EBCDIC (UK-Euro)
IBM01147 = 1147, // IBM EBCDIC France (20297 + Euro symbol); IBM EBCDIC (France-Euro)
IBM01148 = 1148, // IBM EBCDIC International (500 + Euro symbol); IBM EBCDIC (International-Euro)
IBM01149 = 1149, // IBM EBCDIC Icelandic (20871 + Euro symbol); IBM EBCDIC (Icelandic-Euro)
UTF16 = 1200, // Unicode UTF-16, little endian byte order (BMP of ISO 10646); available only to managed applications
UNICODE_FFFE = 1201, // Unicode UTF-16, big endian byte order; available only to managed applications
WINDOWS_1250 = 1250, // ANSI Central European; Central European (Windows)
WINDOWS_1251 = 1251, // ANSI Cyrillic; Cyrillic (Windows)
WINDOWS_1252 = 1252, // ANSI Latin 1; Western European (Windows)
WINDOWS_1253 = 1253, // ANSI Greek; Greek (Windows)
WINDOWS_1254 = 1254, // ANSI Turkish; Turkish (Windows)
WINDOWS_1255 = 1255, // ANSI Hebrew; Hebrew (Windows)
WINDOWS_1256 = 1256, // ANSI Arabic; Arabic (Windows)
WINDOWS_1257 = 1257, // ANSI Baltic; Baltic (Windows)
WINDOWS_1258 = 1258, // ANSI/OEM Vietnamese; Vietnamese (Windows)
JOHAB = 1361, // Korean (Johab)
MACINTOSH = 10000, // MAC Roman; Western European (Mac)
X_MAC_JAPANESE = 10001, // Japanese (Mac)
X_MAC_CHINESETRAD = 10002, // MAC Traditional Chinese (Big5); Chinese Traditional (Mac)
X_MAC_KOREAN = 10003, // Korean (Mac)
X_MAC_ARABIC = 10004, // Arabic (Mac)
X_MAC_HEBREW = 10005, // Hebrew (Mac)
X_MAC_GREEK = 10006, // Greek (Mac)
X_MAC_CYRILLIC = 10007, // Cyrillic (Mac)
X_MAC_CHINESESIMP = 10008, // MAC Simplified Chinese (GB 2312); Chinese Simplified (Mac)
X_MAC_ROMANIAN = 10010, // Romanian (Mac)
X_MAC_UKRANIAN = 10017, // Ukrainian (Mac)
X_MAC_THAI = 10021, // Thai (Mac)
X_MAC_CE = 10029, // MAC Latin 2; Central European (Mac)
X_MAC_ICELANDIC = 10079, // Icelandic (Mac)
X_MAC_TURKISH = 10081, // Turkish (Mac)
X_MAC_CROATIAN = 10082, // Croatian (Mac)
UTF32 = 12000, // Unicode UTF-32, little endian byte order; available only to managed applications
UTF32BE = 12001, // Unicode UTF-32, big endian byte order; available only to managed applications
X_CHINESE_CNS = 20000, // CNS Taiwan; Chinese Traditional (CNS)
X_CP_20001 = 20001, // TCA Taiwan
X_CHINESE_ETEN = 20002, // Eten Taiwan; Chinese Traditional (Eten)
X_CP_20003 = 20003, // IBM5550 Taiwan
X_CP_20004 = 20004, // TeleText Taiwan
X_CP_20005 = 20005, // Wang Taiwan
X_IA5 = 20105, // IA5 (IRV International Alphabet No. 5, 7-bit); Western European (IA5)
X_IA5_GERMAN = 20106, // IA5 German (7-bit)
X_IA5_SWEDISH = 20107, // IA5 Swedish (7-bit)
X_IA5_NORWEGIAN = 20108, // IA5 Norwegian (7-bit)
US_ASCII = 20127, // US-ASCII (7-bit)
X_CP20261 = 20261, // T.61
X_CP20269 = 20269, // ISO 6937 Non-Spacing Accent
IBM273 = 20273, // IBM EBCDIC Germany
IBM277 = 20277, // IBM EBCDIC Denmark-Norway
IBM278 = 20278, // IBM EBCDIC Finland-Sweden
IBM280 = 20280, // IBM EBCDIC Italy
IBM284 = 20284, // IBM EBCDIC Latin America-Spain
IBM285 = 20285, // IBM EBCDIC United Kingdom
IBM290 = 20290, // IBM EBCDIC Japanese Katakana Extended
IBM297 = 20297, // IBM EBCDIC France
IBM420 = 20420, // IBM EBCDIC Arabic
IBM423 = 20423, // IBM EBCDIC Greek
IBM424 = 20424, // IBM EBCDIC Hebrew
X_EBCDIC_KOREAN_EXTENDED = 20833, // IBM EBCDIC Korean Extended
IBM_THAI = 20838, // IBM EBCDIC Thai
KOI8_R = 20866, // Russian (KOI8-R); Cyrillic (KOI8-R)
IBM871 = 20871, // IBM EBCDIC Icelandic
IBM880 = 20880, // IBM EBCDIC Cyrillic Russian
IBM905 = 20905, // IBM EBCDIC Turkish
IBM00924 = 20924, // IBM EBCDIC Latin 1/Open System (1047 + Euro symbol)
EUC_JP = 20932, // Japanese (JIS 0208-1990 and 0212-1990)
X_CP20936 = 20936, // Simplified Chinese (GB2312); Chinese Simplified (GB2312-80)
X_CP20949 = 20949, // Korean Wansung
CP1025 = 21025, // IBM EBCDIC Cyrillic Serbian-Bulgarian
CODEPAGE_21027 = 21027, // (deprecated)
KOI8_U = 21866, // Ukrainian (KOI8-U); Cyrillic (KOI8-U)
ISO_8859_1 = 28591, // ISO 8859-1 Latin 1; Western European (ISO)
ISO_8859_2 = 28592, // ISO 8859-2 Central European; Central European (ISO)
ISO_8859_3 = 28593, // ISO 8859-3 Latin 3
ISO_8859_4 = 28594, // ISO 8859-4 Baltic
ISO_8859_5 = 28595, // ISO 8859-5 Cyrillic
ISO_8859_6 = 28596, // ISO 8859-6 Arabic
ISO_8859_7 = 28597, // ISO 8859-7 Greek
ISO_8859_8 = 28598, // ISO 8859-8 Hebrew; Hebrew (ISO-Visual)
ISO_8859_9 = 28599, // ISO 8859-9 Turkish
ISO_8859_13 = 28603, // ISO 8859-13 Estonian
ISO_8859_15 = 28605, // ISO 8859-15 Latin 9
X_EUROPA = 29001, // Europa 3
ISO_8859_8_I = 38598, // ISO 8859-8 Hebrew; Hebrew (ISO-Logical)
ISO_2022_JP = 50220, // ISO 2022 Japanese with no halfwidth Katakana; Japanese (JIS)
CS_ISO2022JP = 50221, // ISO 2022 Japanese with halfwidth Katakana; Japanese (JIS-Allow 1 byte Kana)
ISO_2022_JP2 = 50222, // ISO 2022 Japanese JIS X 0201-1989; Japanese (JIS-Allow 1 byte Kana - SO/SI)
ISO_2022_KR = 50225, // ISO 2022 Korean
X_CP50227 = 50227, // ISO 2022 Simplified Chinese; Chinese Simplified (ISO 2022)
CODEPAGE_50229 = 50229, // ISO 2022 Traditional Chinese
CODEPAGE_50930 = 50930, // EBCDIC Japanese (Katakana) Extended
CODEPAGE_50931 = 50931, // EBCDIC US-Canada and Japanese
CODEPAGE_50933 = 50933, // EBCDIC Korean Extended and Korean
CODEPAGE_50935 = 50935, // EBCDIC Simplified Chinese Extended and Simplified Chinese
CODEPAGE_50936 = 50936, // EBCDIC Simplified Chinese
CODEPAGE_50937 = 50937, // EBCDIC US-Canada and Traditional Chinese
CODEPAGE_50939 = 50939, // EBCDIC Japanese (Latin) Extended and Japanese
EUC_JP2 = 51932, // EUC Japanese
EUC_CN = 51936, // EUC Simplified Chinese; Chinese Simplified (EUC)
EUC_KR = 51949, // EUC Korean
CODEPAGE_51950 = 51950, // EUC Traditional Chinese
HZ_GB_2312 = 52936, // HZ-GB2312 Simplified Chinese; Chinese Simplified (HZ)
GB18030 = 54936, // Windows XP and later: GB18030 Simplified Chinese (4 byte); Chinese Simplified (GB18030)
X_ISCII_DE = 57002, // ISCII Devanagari
X_ISCII_BE = 57003, // ISCII Bangla
X_ISCII_TA = 57004, // ISCII Tamil
X_ISCII_TE = 57005, // ISCII Telugu
X_ISCII_AS = 57006, // ISCII Assamese
X_ISCII_OR = 57007, // ISCII Odia
X_ISCII_KA = 57008, // ISCII Kannada
X_ISCII_MA = 57009, // ISCII Malayalam
X_ISCII_GU = 57010, // ISCII Gujarati
X_ISCII_PA = 57011, // ISCII Punjabi
UTF7 = 65000, // Unicode (UTF-7)
UTF8 = 65001, // Unicode (UTF-8)
IBM_THAI = 20838, // IBM EBCDIC Thai
KOI8_R = 20866, // Russian (KOI8-R); Cyrillic (KOI8-R)
IBM871 = 20871, // IBM EBCDIC Icelandic
IBM880 = 20880, // IBM EBCDIC Cyrillic Russian
IBM905 = 20905, // IBM EBCDIC Turkish
IBM00924 = 20924, // IBM EBCDIC Latin 1/Open System (1047 + Euro symbol)
EUC_JP = 20932, // Japanese (JIS 0208-1990 and 0212-1990)
X_CP20936 = 20936, // Simplified Chinese (GB2312); Chinese Simplified (GB2312-80)
X_CP20949 = 20949, // Korean Wansung
CP1025 = 21025, // IBM EBCDIC Cyrillic Serbian-Bulgarian
CODEPAGE_21027 = 21027, // (deprecated)
KOI8_U = 21866, // Ukrainian (KOI8-U); Cyrillic (KOI8-U)
ISO_8859_1 = 28591, // ISO 8859-1 Latin 1; Western European (ISO)
ISO_8859_2 = 28592, // ISO 8859-2 Central European; Central European (ISO)
ISO_8859_3 = 28593, // ISO 8859-3 Latin 3
ISO_8859_4 = 28594, // ISO 8859-4 Baltic
ISO_8859_5 = 28595, // ISO 8859-5 Cyrillic
ISO_8859_6 = 28596, // ISO 8859-6 Arabic
ISO_8859_7 = 28597, // ISO 8859-7 Greek
ISO_8859_8 = 28598, // ISO 8859-8 Hebrew; Hebrew (ISO-Visual)
ISO_8859_9 = 28599, // ISO 8859-9 Turkish
ISO_8859_13 = 28603, // ISO 8859-13 Estonian
ISO_8859_15 = 28605, // ISO 8859-15 Latin 9
X_EUROPA = 29001, // Europa 3
ISO_8859_8_I = 38598, // ISO 8859-8 Hebrew; Hebrew (ISO-Logical)
ISO_2022_JP = 50220, // ISO 2022 Japanese with no halfwidth Katakana; Japanese (JIS)
CS_ISO2022JP = 50221, // ISO 2022 Japanese with halfwidth Katakana; Japanese (JIS-Allow 1 byte Kana)
ISO_2022_JP2 = 50222, // ISO 2022 Japanese JIS X 0201-1989; Japanese (JIS-Allow 1 byte Kana - SO/SI)
ISO_2022_KR = 50225, // ISO 2022 Korean
X_CP50227 = 50227, // ISO 2022 Simplified Chinese; Chinese Simplified (ISO 2022)
CODEPAGE_50229 = 50229, // ISO 2022 Traditional Chinese
CODEPAGE_50930 = 50930, // EBCDIC Japanese (Katakana) Extended
CODEPAGE_50931 = 50931, // EBCDIC US-Canada and Japanese
CODEPAGE_50933 = 50933, // EBCDIC Korean Extended and Korean
CODEPAGE_50935 = 50935, // EBCDIC Simplified Chinese Extended and Simplified Chinese
CODEPAGE_50936 = 50936, // EBCDIC Simplified Chinese
CODEPAGE_50937 = 50937, // EBCDIC US-Canada and Traditional Chinese
CODEPAGE_50939 = 50939, // EBCDIC Japanese (Latin) Extended and Japanese
EUC_JP2 = 51932, // EUC Japanese
EUC_CN = 51936, // EUC Simplified Chinese; Chinese Simplified (EUC)
EUC_KR = 51949, // EUC Korean
CODEPAGE_51950 = 51950, // EUC Traditional Chinese
HZ_GB_2312 = 52936, // HZ-GB2312 Simplified Chinese; Chinese Simplified (HZ)
GB18030 = 54936, // Windows XP and later: GB18030 Simplified Chinese (4 byte); Chinese Simplified (GB18030)
X_ISCII_DE = 57002, // ISCII Devanagari
X_ISCII_BE = 57003, // ISCII Bangla
X_ISCII_TA = 57004, // ISCII Tamil
X_ISCII_TE = 57005, // ISCII Telugu
X_ISCII_AS = 57006, // ISCII Assamese
X_ISCII_OR = 57007, // ISCII Odia
X_ISCII_KA = 57008, // ISCII Kannada
X_ISCII_MA = 57009, // ISCII Malayalam
X_ISCII_GU = 57010, // ISCII Gujarati
X_ISCII_PA = 57011, // ISCII Punjabi
UTF7 = 65000, // Unicode (UTF-7)
UTF8 = 65001, // Unicode (UTF-8)
}
extern fn Win32_BOOL setConsoleOutputCP(Win32_CODEPAGE wCodePageId) @cname("SetConsoleOutputCP");

View File

@@ -1,6 +1,6 @@
module std::os::win32 @if(env::WIN32);
enum Win32_AllocationType : const Win32_DWORD
const enum Win32_AllocationType
{
MEM_COMMIT = 0x00001000,
MEM_RESERVE = 0x00002000,
@@ -12,7 +12,7 @@ enum Win32_AllocationType : const Win32_DWORD
MEM_WRITE_WATCH = 0x00200000
}
enum Win32_Protect : const Win32_DWORD
const enum Win32_Protect : Win32_DWORD
{
PAGE_EXECUTE = 0x10,
PAGE_EXECUTE_READ = 0x20,
@@ -29,7 +29,7 @@ enum Win32_Protect : const Win32_DWORD
PAGE_WRITECOMBINE = 0x400,
}
enum Win32_FreeType : const Win32_DWORD
const enum Win32_FreeType : Win32_DWORD
{
MEM_DECOMMIT = 0x00004000,
MEM_RELEASE = 0x00008000,

View File

@@ -13,7 +13,7 @@ enum Win32_MEM_EXTENDED_PARAMETER_TYPE : CInt
}
alias Win32_PMEM_EXTENDED_PARAMETER_TYPE = Win32_MEM_EXTENDED_PARAMETER_TYPE;
enum Win32_MEM_EXTENDED_PARAMETER_ATTRIBUTE : const Win32_DWORD64
const enum Win32_MEM_EXTENDED_PARAMETER_ATTRIBUTE : Win32_DWORD64
{
<* The allocation is non-pageable. *>
NONPAGED = 0x02,