- 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

@@ -7,7 +7,7 @@ const uint PIXELS_MAX = 400000000;
Purely informative. It will be saved to the file header,
but does not affect how chunks are en-/decoded.
*>
enum QOIColorspace : const char
const enum QOIColorspace : char
{
<* sRGB with linear alpha *>
SRGB = 0,
@@ -21,7 +21,7 @@ enum QOIColorspace : const char
AUTO can be used when decoding to automatically determine
the channels from the file's header.
*>
enum QOIChannels : const inline char
const enum QOIChannels : inline char
{
AUTO = 0,
RGB = 3,

View File

@@ -1,7 +1,7 @@
module std::core::string::ansi;
import std::io;
enum Ansi : const inline String
const enum Ansi : inline String
{
RESET = "\e[0m",
BOLD = "\e[1m",

View File

@@ -56,9 +56,9 @@ enum BlockMode
<* AES type: 128, 192 or 256 bits *>
enum AesType : (AesKey key)
{
AES128 = { 128, 16, 176, 4, 10 },
AES192 = { 192, 24, 208, 6, 12 },
AES256 = { 256, 32, 240, 8, 14 }
AES128 {{ 128, 16, 176, 4, 10 }},
AES192 {{ 192, 24, 208, 6, 12 }},
AES256 {{ 256, 32, 240, 8, 14 }}
}
struct AesKey

View File

@@ -68,47 +68,47 @@ struct CodePageTable
enum CodePage : (String name, CodePageTable* table)
{
CP1250 = { "cp1250", &codepage::CP1250 },
CP1251 = { "cp1251", &codepage::CP1251 },
CP1252 = { "cp1252", &codepage::CP1252 },
CP1253 = { "cp1253", &codepage::CP1253 },
CP1254 = { "cp1254", &codepage::CP1254 },
CP1255 = { "cp1255", &codepage::CP1255 },
CP1256 = { "cp1256", &codepage::CP1256 },
CP1257 = { "cp1257", &codepage::CP1257 },
CP1258 = { "cp1258", &codepage::CP1258 },
CP437 = { "cp437", &codepage::CP437 },
CP737 = { "cp737", &codepage::CP737 },
CP775 = { "cp775", &codepage::CP775 },
CP850 = { "cp850", &codepage::CP850 },
CP852 = { "cp852", &codepage::CP852 },
CP855 = { "cp855", &codepage::CP855 },
CP857 = { "cp857", &codepage::CP857 },
CP860 = { "cp860", &codepage::CP860 },
CP861 = { "cp861", &codepage::CP861 },
CP862 = { "cp862", &codepage::CP862 },
CP863 = { "cp863", &codepage::CP863 },
CP864 = { "cp864", &codepage::CP864 },
CP865 = { "cp865", &codepage::CP865 },
CP866 = { "cp866", &codepage::CP866 },
CP869 = { "cp869", &codepage::CP869 },
CP874 = { "cp874", &codepage::CP874 },
ISO_8859_1 = { "iso-8859-1", &codepage::ISO_8859_1 },
ISO_8859_10 = { "iso-8859-10", &codepage::ISO_8859_10 },
ISO_8859_11 = { "iso-8859-11", &codepage::ISO_8859_11 },
ISO_8859_13 = { "iso-8859-13", &codepage::ISO_8859_13 },
ISO_8859_14 = { "iso-8859-14", &codepage::ISO_8859_14 },
ISO_8859_15 = { "iso-8859-15", &codepage::ISO_8859_15 },
ISO_8859_16 = { "iso-8859-16", &codepage::ISO_8859_16 },
ISO_8859_2 = { "iso-8859-2", &codepage::ISO_8859_2 },
ISO_8859_3 = { "iso-8859-3", &codepage::ISO_8859_3 },
ISO_8859_4 = { "iso-8859-4", &codepage::ISO_8859_4 },
ISO_8859_5 = { "iso-8859-5", &codepage::ISO_8859_5 },
ISO_8859_6 = { "iso-8859-6", &codepage::ISO_8859_6 },
ISO_8859_7 = { "iso-8859-7", &codepage::ISO_8859_7 },
ISO_8859_8 = { "iso-8859-8", &codepage::ISO_8859_8 },
ISO_8859_9 = { "iso-8859-9", &codepage::ISO_8859_9 },
US_ASCII = { "us-ascii", &codepage::US_ASCII },
CP1250 { "cp1250", &codepage::CP1250 },
CP1251 { "cp1251", &codepage::CP1251 },
CP1252 { "cp1252", &codepage::CP1252 },
CP1253 { "cp1253", &codepage::CP1253 },
CP1254 { "cp1254", &codepage::CP1254 },
CP1255 { "cp1255", &codepage::CP1255 },
CP1256 { "cp1256", &codepage::CP1256 },
CP1257 { "cp1257", &codepage::CP1257 },
CP1258 { "cp1258", &codepage::CP1258 },
CP437 { "cp437", &codepage::CP437 },
CP737 { "cp737", &codepage::CP737 },
CP775 { "cp775", &codepage::CP775 },
CP850 { "cp850", &codepage::CP850 },
CP852 { "cp852", &codepage::CP852 },
CP855 { "cp855", &codepage::CP855 },
CP857 { "cp857", &codepage::CP857 },
CP860 { "cp860", &codepage::CP860 },
CP861 { "cp861", &codepage::CP861 },
CP862 { "cp862", &codepage::CP862 },
CP863 { "cp863", &codepage::CP863 },
CP864 { "cp864", &codepage::CP864 },
CP865 { "cp865", &codepage::CP865 },
CP866 { "cp866", &codepage::CP866 },
CP869 { "cp869", &codepage::CP869 },
CP874 { "cp874", &codepage::CP874 },
ISO_8859_1 { "iso-8859-1", &codepage::ISO_8859_1 },
ISO_8859_10 { "iso-8859-10", &codepage::ISO_8859_10 },
ISO_8859_11 { "iso-8859-11", &codepage::ISO_8859_11 },
ISO_8859_13 { "iso-8859-13", &codepage::ISO_8859_13 },
ISO_8859_14 { "iso-8859-14", &codepage::ISO_8859_14 },
ISO_8859_15 { "iso-8859-15", &codepage::ISO_8859_15 },
ISO_8859_16 { "iso-8859-16", &codepage::ISO_8859_16 },
ISO_8859_2 { "iso-8859-2", &codepage::ISO_8859_2 },
ISO_8859_3 { "iso-8859-3", &codepage::ISO_8859_3 },
ISO_8859_4 { "iso-8859-4", &codepage::ISO_8859_4 },
ISO_8859_5 { "iso-8859-5", &codepage::ISO_8859_5 },
ISO_8859_6 { "iso-8859-6", &codepage::ISO_8859_6 },
ISO_8859_7 { "iso-8859-7", &codepage::ISO_8859_7 },
ISO_8859_8 { "iso-8859-8", &codepage::ISO_8859_8 },
ISO_8859_9 { "iso-8859-9", &codepage::ISO_8859_9 },
US_ASCII { "us-ascii", &codepage::US_ASCII },
}
<*

View File

@@ -88,7 +88,7 @@ macro @simd_degree() @local
}
<* Flags used during hash computation based on its state. *>
enum Blake3Flags : const inline char
const enum Blake3Flags : inline char
{
CHUNK_START = 1 << 0,
CHUNK_END = 1 << 1,

View File

@@ -8,7 +8,7 @@
module std::hash::streebog;
enum StreebogLength : const inline uint
const enum StreebogLength : inline uint
{
SIZE_256 = 32,
SIZE_512 = 64,

View File

@@ -17,9 +17,9 @@ const HASH_SIZE = 64;
struct Sha512
{
ulong length;
ulong[8] hash_state;
char[BLOCK_SIZE] buffer;
ulong length;
ulong[8] hash_state;
char[BLOCK_SIZE] buffer;
}
alias HmacSha512 = Hmac{Sha512, HASH_SIZE, BLOCK_SIZE};
@@ -36,26 +36,26 @@ macro ulong r0(ulong x) @local => (ror(x, 1) ^ ror(x, 8) ^ (x >> 7));
macro ulong r1(ulong x) @local => (ror(x, 19) ^ ror(x, 61) ^ (x >> 6));
const ulong[80] K @local = {
0x428a2f98d728ae22, 0x7137449123ef65cd, 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc,
0x3956c25bf348b538, 0x59f111f1b605d019, 0x923f82a4af194f9b, 0xab1c5ed5da6d8118,
0xd807aa98a3030242, 0x12835b0145706fbe, 0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2,
0x72be5d74f27b896f, 0x80deb1fe3b1696b1, 0x9bdc06a725c71235, 0xc19bf174cf692694,
0xe49b69c19ef14ad2, 0xefbe4786384f25e3, 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65,
0x2de92c6f592b0275, 0x4a7484aa6ea6e483, 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5,
0x983e5152ee66dfab, 0xa831c66d2db43210, 0xb00327c898fb213f, 0xbf597fc7beef0ee4,
0xc6e00bf33da88fc2, 0xd5a79147930aa725, 0x06ca6351e003826f, 0x142929670a0e6e70,
0x27b70a8546d22ffc, 0x2e1b21385c26c926, 0x4d2c6dfc5ac42aed, 0x53380d139d95b3df,
0x650a73548baf63de, 0x766a0abb3c77b2a8, 0x81c2c92e47edaee6, 0x92722c851482353b,
0xa2bfe8a14cf10364, 0xa81a664bbc423001, 0xc24b8b70d0f89791, 0xc76c51a30654be30,
0xd192e819d6ef5218, 0xd69906245565a910, 0xf40e35855771202a, 0x106aa07032bbd1b8,
0x19a4c116b8d2d0c8, 0x1e376c085141ab53, 0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8,
0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb, 0x5b9cca4f7763e373, 0x682e6ff3d6b2b8a3,
0x748f82ee5defb2fc, 0x78a5636f43172f60, 0x84c87814a1f0ab72, 0x8cc702081a6439ec,
0x90befffa23631e28, 0xa4506cebde82bde9, 0xbef9a3f7b2c67915, 0xc67178f2e372532b,
0xca273eceea26619c, 0xd186b8c721c0c207, 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178,
0x06f067aa72176fba, 0x0a637dc5a2c898a6, 0x113f9804bef90dae, 0x1b710b35131c471b,
0x28db77f523047d84, 0x32caab7b40c72493, 0x3c9ebe0a15c9bebc, 0x431d67c49c100d4c,
0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, 0x5fcb6fab3ad6faec, 0x6c44198c4a475817
0x428a2f98d728ae22, 0x7137449123ef65cd, 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc,
0x3956c25bf348b538, 0x59f111f1b605d019, 0x923f82a4af194f9b, 0xab1c5ed5da6d8118,
0xd807aa98a3030242, 0x12835b0145706fbe, 0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2,
0x72be5d74f27b896f, 0x80deb1fe3b1696b1, 0x9bdc06a725c71235, 0xc19bf174cf692694,
0xe49b69c19ef14ad2, 0xefbe4786384f25e3, 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65,
0x2de92c6f592b0275, 0x4a7484aa6ea6e483, 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5,
0x983e5152ee66dfab, 0xa831c66d2db43210, 0xb00327c898fb213f, 0xbf597fc7beef0ee4,
0xc6e00bf33da88fc2, 0xd5a79147930aa725, 0x06ca6351e003826f, 0x142929670a0e6e70,
0x27b70a8546d22ffc, 0x2e1b21385c26c926, 0x4d2c6dfc5ac42aed, 0x53380d139d95b3df,
0x650a73548baf63de, 0x766a0abb3c77b2a8, 0x81c2c92e47edaee6, 0x92722c851482353b,
0xa2bfe8a14cf10364, 0xa81a664bbc423001, 0xc24b8b70d0f89791, 0xc76c51a30654be30,
0xd192e819d6ef5218, 0xd69906245565a910, 0xf40e35855771202a, 0x106aa07032bbd1b8,
0x19a4c116b8d2d0c8, 0x1e376c085141ab53, 0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8,
0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb, 0x5b9cca4f7763e373, 0x682e6ff3d6b2b8a3,
0x748f82ee5defb2fc, 0x78a5636f43172f60, 0x84c87814a1f0ab72, 0x8cc702081a6439ec,
0x90befffa23631e28, 0xa4506cebde82bde9, 0xbef9a3f7b2c67915, 0xc67178f2e372532b,
0xca273eceea26619c, 0xd186b8c721c0c207, 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178,
0x06f067aa72176fba, 0x0a637dc5a2c898a6, 0x113f9804bef90dae, 0x1b710b35131c471b,
0x28db77f523047d84, 0x32caab7b40c72493, 0x3c9ebe0a15c9bebc, 0x431d67c49c100d4c,
0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, 0x5fcb6fab3ad6faec, 0x6c44198c4a475817
};
@@ -63,219 +63,211 @@ const ulong[80] K @local = {
// All truncation types are simple to add onto the base SHA512 implementation at a (near) future time.
enum HashTruncationType : uint (uint truncation_width, ulong[8] initial_state)
{
SHA512 = {
512,
{
0x6a09e667f3bcc908,
0xbb67ae8584caa73b,
0x3c6ef372fe94f82b,
0xa54ff53a5f1d36f1,
0x510e527fade682d1,
0x9b05688c2b3e6c1f,
0x1f83d9abfb41bd6b,
0x5be0cd19137e2179
}
},
SHA384 = {
384,
{
0xcbbb9d5dc1059ed8,
0x629a292a367cd507,
0x9159015a3070dd17,
0x152fecd8f70e5939,
0x67332667ffc00b31,
0x8eb44a8768581511,
0xdb0c2e0d64f98fa7,
0x47b5481dbefa4fa4
}
},
SHA512_224 = {
224,
{
0x8C3D37C819544DA2,
0x73E1996689DCD4D6,
0x1DFAB7AE32FF9C82,
0x679DD514582F9FCF,
0x0F6D2B697BD44DA8,
0x77E36F7304C48942,
0x3F9D85A86A1D36C8,
0x1112E6AD91D692A1
}
},
SHA512_256 = {
256,
{
0x22312194FC2BF72C,
0x9F555FA3C84C64C2,
0x2393B86B6F53B151,
0x963877195940EABD,
0x96283EE2A88EFFE3,
0xBE5E1E2553863992,
0x2B0199FC2C85B8AA,
0x0EB72DDC81C52CA2
}
},
SHA512 { 512,
{
0x6a09e667f3bcc908,
0xbb67ae8584caa73b,
0x3c6ef372fe94f82b,
0xa54ff53a5f1d36f1,
0x510e527fade682d1,
0x9b05688c2b3e6c1f,
0x1f83d9abfb41bd6b,
0x5be0cd19137e2179
}},
SHA384 { 384,
{
0xcbbb9d5dc1059ed8,
0x629a292a367cd507,
0x9159015a3070dd17,
0x152fecd8f70e5939,
0x67332667ffc00b31,
0x8eb44a8768581511,
0xdb0c2e0d64f98fa7,
0x47b5481dbefa4fa4
}},
SHA512_224 { 224,
{
0x8C3D37C819544DA2,
0x73E1996689DCD4D6,
0x1DFAB7AE32FF9C82,
0x679DD514582F9FCF,
0x0F6D2B697BD44DA8,
0x77E36F7304C48942,
0x3F9D85A86A1D36C8,
0x1112E6AD91D692A1
}},
SHA512_256 { 256,
{
0x22312194FC2BF72C,
0x9F555FA3C84C64C2,
0x2393B86B6F53B151,
0x963877195940EABD,
0x96283EE2A88EFFE3,
0xBE5E1E2553863992,
0x2B0199FC2C85B8AA,
0x0EB72DDC81C52CA2
}},
}
<*
@param [in] data
@param [in] data
*>
fn char[HASH_SIZE] hash(char[] data)
{
Sha512 s @noinit;
s.init();
s.update(data);
return s.final();
Sha512 s @noinit;
s.init();
s.update(data);
return s.final();
}
fn void Sha512.init(&self)
{
*self = {
.hash_state = HashTruncationType.SHA512.initial_state
};
*self = {
.hash_state = HashTruncationType.SHA512.initial_state
};
}
<*
@param [in] data
@require data.len <= ulong.max
@param [in] data
@require data.len <= ulong.max
*>
fn void Sha512.update(&self, char[] data)
{
char* p = data.ptr;
ulong len = data.len;
ulong l;
ulong r = self.length % 128;
char* p = data.ptr;
ulong len = data.len;
ulong l;
ulong r = self.length % 128;
self.length += len;
self.length += len;
if (r)
{
if (len < (128 - r))
{
for (l = 0; l < len; ++l) self.buffer[r+l] = p[l];
if (r)
{
if (len < (128 - r))
{
for (l = 0; l < len; ++l) self.buffer[r+l] = p[l];
return;
}
return;
}
for (l = 0; l < 128 - r; ++l) self.buffer[r+l] = p[l];
for (l = 0; l < 128 - r; ++l) self.buffer[r+l] = p[l];
len -= (128 - r);
p = &p[128 - r];
len -= (128 - r);
p = &p[128 - r];
sha512_transform(&self.hash_state, &self.buffer);
}
sha512_transform(&self.hash_state, &self.buffer);
}
for (; len >= 128; len -= 128, p = &p[128]) sha512_transform(&self.hash_state, p);
for (; len >= 128; len -= 128, p = &p[128]) sha512_transform(&self.hash_state, p);
for (l = 0; l < len; ++l) self.buffer[l] = p[l];
for (l = 0; l < len; ++l) self.buffer[l] = p[l];
}
fn char[HASH_SIZE] Sha512.final(&self)
{
char[HASH_SIZE] hash;
char[HASH_SIZE] hash;
int i;
ulong r = self.length % 128;
int i;
ulong r = self.length % 128;
self.buffer[r++] = 0x80;
self.buffer[r++] = 0x80;
if (r > 112)
{
for (i = 0; i < 128 - r; ++i) self.buffer[r+i] = 0;
if (r > 112)
{
for (i = 0; i < 128 - r; ++i) self.buffer[r+i] = 0;
r = 0;
r = 0;
sha512_transform(&self.hash_state, &self.buffer);
}
sha512_transform(&self.hash_state, &self.buffer);
}
for (i = 0; i < 120 - r; ++i) self.buffer[r+i] = 0;
for (i = 0; i < 120 - r; ++i) self.buffer[r+i] = 0;
self.length *= 8;
self.length *= 8;
self.buffer[120] = (char)(self.length >> 56);
self.buffer[121] = (char)(self.length >> 48);
self.buffer[122] = (char)(self.length >> 40);
self.buffer[123] = (char)(self.length >> 32);
self.buffer[124] = (char)(self.length >> 24);
self.buffer[125] = (char)(self.length >> 16);
self.buffer[126] = (char)(self.length >> 8);
self.buffer[127] = (char)(self.length);
self.buffer[120] = (char)(self.length >> 56);
self.buffer[121] = (char)(self.length >> 48);
self.buffer[122] = (char)(self.length >> 40);
self.buffer[123] = (char)(self.length >> 32);
self.buffer[124] = (char)(self.length >> 24);
self.buffer[125] = (char)(self.length >> 16);
self.buffer[126] = (char)(self.length >> 8);
self.buffer[127] = (char)(self.length);
sha512_transform(&self.hash_state, &self.buffer);
sha512_transform(&self.hash_state, &self.buffer);
for (i = 0; i < 8; ++i)
{
hash[(8 * i)] = (char)(self.hash_state[i] >> 56);
hash[(8 * i) + 1] = (char)(self.hash_state[i] >> 48);
hash[(8 * i) + 2] = (char)(self.hash_state[i] >> 40);
hash[(8 * i) + 3] = (char)(self.hash_state[i] >> 32);
hash[(8 * i) + 4] = (char)(self.hash_state[i] >> 24);
hash[(8 * i) + 5] = (char)(self.hash_state[i] >> 16);
hash[(8 * i) + 6] = (char)(self.hash_state[i] >> 8);
hash[(8 * i) + 7] = (char)(self.hash_state[i]);
}
for (i = 0; i < 8; ++i)
{
hash[(8 * i)] = (char)(self.hash_state[i] >> 56);
hash[(8 * i) + 1] = (char)(self.hash_state[i] >> 48);
hash[(8 * i) + 2] = (char)(self.hash_state[i] >> 40);
hash[(8 * i) + 3] = (char)(self.hash_state[i] >> 32);
hash[(8 * i) + 4] = (char)(self.hash_state[i] >> 24);
hash[(8 * i) + 5] = (char)(self.hash_state[i] >> 16);
hash[(8 * i) + 6] = (char)(self.hash_state[i] >> 8);
hash[(8 * i) + 7] = (char)(self.hash_state[i]);
}
return hash;
return hash;
}
<*
@param [&inout] state
@param [&in] buf
@param [&inout] state
@param [&in] buf
*>
fn void sha512_transform(ulong *state, char *buf) @local
{
ulong t1, t2, a, b, c, d, e, f, g, h;
ulong[80] w;
int i;
ulong t1, t2, a, b, c, d, e, f, g, h;
ulong[80] w;
int i;
for (i = 0; i < 16; ++i)
{
w[i] = (ulong)buf[(8 * i)] << 56;
w[i] |= (ulong)buf[(8 * i) + 1] << 48;
w[i] |= (ulong)buf[(8 * i) + 2] << 40;
w[i] |= (ulong)buf[(8 * i) + 3] << 32;
w[i] |= (ulong)buf[(8 * i) + 4] << 24;
w[i] |= (ulong)buf[(8 * i) + 5] << 16;
w[i] |= (ulong)buf[(8 * i) + 6] << 8;
w[i] |= buf[(8 * i) + 7];
}
for (i = 0; i < 16; ++i)
{
w[i] = (ulong)buf[(8 * i)] << 56;
w[i] |= (ulong)buf[(8 * i) + 1] << 48;
w[i] |= (ulong)buf[(8 * i) + 2] << 40;
w[i] |= (ulong)buf[(8 * i) + 3] << 32;
w[i] |= (ulong)buf[(8 * i) + 4] << 24;
w[i] |= (ulong)buf[(8 * i) + 5] << 16;
w[i] |= (ulong)buf[(8 * i) + 6] << 8;
w[i] |= buf[(8 * i) + 7];
}
for (; i < 80; ++i) w[i] = r1(w[i - 2]) + w[i - 7] + r0(w[i - 15]) + w[i - 16];
for (; i < 80; ++i) w[i] = r1(w[i - 2]) + w[i - 7] + r0(w[i - 15]) + w[i - 16];
a = state[0];
b = state[1];
c = state[2];
d = state[3];
e = state[4];
f = state[5];
g = state[6];
h = state[7];
a = state[0];
b = state[1];
c = state[2];
d = state[3];
e = state[4];
f = state[5];
g = state[6];
h = state[7];
for (i = 0; i < 80; ++i)
{
t1 = h + s1(e) + ch(e, f, g) + K[i] + w[i];
t2 = s0(a) + maj(a, b, c);
h = g;
g = f;
f = e;
e = d + t1;
d = c;
c = b;
b = a;
a = t1 + t2;
}
for (i = 0; i < 80; ++i)
{
t1 = h + s1(e) + ch(e, f, g) + K[i] + w[i];
t2 = s0(a) + maj(a, b, c);
h = g;
g = f;
f = e;
e = d + t1;
d = c;
c = b;
b = a;
a = t1 + t2;
}
state[0] += a;
state[1] += b;
state[2] += c;
state[3] += d;
state[4] += e;
state[5] += f;
state[6] += g;
state[7] += h;
state[0] += a;
state[1] += b;
state[2] += c;
state[3] += d;
state[4] += e;
state[5] += f;
state[6] += g;
state[7] += h;
}

View File

@@ -168,13 +168,13 @@ bitstruct Tc_lflags : CUInt
bool extproc : 16;
}
enum T_nldly : const char
const enum T_nldly : char
{
NL0 = 0b0,
NL1 = 0b1,
}
enum T_crdly : const char
const enum T_crdly : char
{
CR0 = 0b00,
CR1 = 0b01,
@@ -182,7 +182,7 @@ enum T_crdly : const char
CR3 = 0b11,
}
enum T_tabdly : const char
const enum T_tabdly : char
{
TAB0 = 0b00,
TAB1 = 0b01,
@@ -191,25 +191,25 @@ enum T_tabdly : const char
XTABS = TAB3,
}
enum T_bsdly : const char
const enum T_bsdly : char
{
BS0 = 0b0,
BS1 = 0b1,
}
enum T_ffdly : const char
const enum T_ffdly : char
{
FF0 = 0b0,
FF1 = 0b1,
}
enum T_vtdly : const char
const enum T_vtdly : char
{
VT0 = 0b0,
VT1 = 0b1,
}
enum T_csize : const char
const enum T_csize : char
{
CS5 = 0b00,
CS6 = 0b01,
@@ -217,31 +217,31 @@ enum T_csize : const char
CS8 = 0b11,
}
enum Speed : const CUInt
const enum Speed : CUInt
{
B0 = 0o0000000,
B50 = 0o0000001,
B75 = 0o0000002,
B110 = 0o0000003,
B134 = 0o0000004,
B150 = 0o0000005,
B200 = 0o0000006,
B300 = 0o0000007,
B600 = 0o0000010,
B1200 = 0o0000011,
B1800 = 0o0000012,
B2400 = 0o0000013,
B4800 = 0o0000014,
B9600 = 0o0000015,
B19200 = 0o0000016,
B38400 = 0o0000017,
B57600 = 0o0010001,
B115200 = 0o0010002,
B230400 = 0o0010003,
B460800 = 0o0010004,
B500000 = 0o0010005,
B576000 = 0o0010006,
B921600 = 0o0010007,
B0 = 0o0000000,
B50 = 0o0000001,
B75 = 0o0000002,
B110 = 0o0000003,
B134 = 0o0000004,
B150 = 0o0000005,
B200 = 0o0000006,
B300 = 0o0000007,
B600 = 0o0000010,
B1200 = 0o0000011,
B1800 = 0o0000012,
B2400 = 0o0000013,
B4800 = 0o0000014,
B9600 = 0o0000015,
B19200 = 0o0000016,
B38400 = 0o0000017,
B57600 = 0o0010001,
B115200 = 0o0010002,
B230400 = 0o0010003,
B460800 = 0o0010004,
B500000 = 0o0010005,
B576000 = 0o0010006,
B921600 = 0o0010007,
B1000000 = 0o0010010,
B1152000 = 0o0010011,
B1500000 = 0o0010012,
@@ -253,37 +253,37 @@ enum Speed : const CUInt
MAX_BAUD = B4000000,
}
enum Cc : const inline char
const enum Cc : inline char
{
VINTR = 0,
VQUIT = 1,
VERASE = 2,
VKILL = 3,
VEOF = 4,
VTIME = 5,
VMIN = 6,
VSWTC = 7,
VSTART = 8,
VSTOP = 9,
VSUSP = 10,
VEOL = 11,
VINTR = 0,
VQUIT = 1,
VERASE = 2,
VKILL = 3,
VEOF = 4,
VTIME = 5,
VMIN = 6,
VSWTC = 7,
VSTART = 8,
VSTOP = 9,
VSUSP = 10,
VEOL = 11,
VREPRINT = 12,
VDISCARD = 13,
VWERASE = 14,
VLNEXT = 15,
VEOL2 = 16,
VWERASE = 14,
VLNEXT = 15,
VEOL2 = 16,
}
enum Tcactions : const CInt
const enum Tcactions : CInt
{
TCOOFF = 0,
TCOON = 1,
TCIOFF = 2,
TCION = 3,
TCIFLUSH = 0,
TCOFLUSH = 1,
TCOOFF = 0,
TCOON = 1,
TCIOFF = 2,
TCION = 3,
TCIFLUSH = 0,
TCOFLUSH = 1,
TCIOFLUSH = 2,
TCSANOW = 0,
TCSANOW = 0,
TCSADRAIN = 1,
TCSAFLUSH = 2,
}

View File

@@ -3,9 +3,9 @@ import std::io;
enum IpProtocol : char (AIFamily ai_family)
{
UNSPECIFIED = os::AF_UNSPEC,
IPV4 = os::AF_INET,
IPV6 = os::AF_INET6,
UNSPECIFIED { os::AF_UNSPEC },
IPV4 { os::AF_INET },
IPV6 { os::AF_INET6 },
}
struct InetAddress (Printable)

View File

@@ -25,7 +25,7 @@ macro void @loop_over_ai(AddrInfo* ai; @body(NativeSocket fd, AddrInfo* ai))
const Duration POLL_FOREVER = (Duration)-1;
enum PollSubscribe : const ushort
const enum PollSubscribe
{
ANY_READ = os::POLLIN,
PRIO_READ = os::POLLPRI,
@@ -44,7 +44,7 @@ const PollSubscribe SUBSCRIBE_ANY_WRITE = (PollSubscribe)os::POLLOUT;
const PollSubscribe SUBSCRIBE_OOB_WRITE = (PollSubscribe)os::POLLWRBAND;
const PollSubscribe SUBSCRIBE_WRITE = (PollSubscribe)os::POLLWRNORM;
enum PollEvent : const ushort
const enum PollEvent : ushort
{
READ_PRIO = os::POLLPRI,
READ_OOB = os::POLLRDBAND,
@@ -109,12 +109,12 @@ macro Socket new_socket(fd, ai)
enum SocketOption : char (CInt value)
{
REUSEADDR = os::SO_REUSEADDR,
REUSEPORT @if(!env::WIN32) = os::SO_REUSEPORT,
KEEPALIVE = os::SO_KEEPALIVE,
BROADCAST = os::SO_BROADCAST,
OOBINLINE = os::SO_OOBINLINE,
DONTROUTE = os::SO_DONTROUTE,
REUSEADDR { os::SO_REUSEADDR },
REUSEPORT @if(!env::WIN32) { os::SO_REUSEPORT },
KEEPALIVE { os::SO_KEEPALIVE },
BROADCAST { os::SO_BROADCAST },
OOBINLINE { os::SO_OOBINLINE },
DONTROUTE { os::SO_DONTROUTE },
}
fn bool? Socket.get_broadcast(&self) => self.get_option(BROADCAST);
@@ -193,9 +193,9 @@ fn usz? Socket.peek(&self, char[] bytes) @dynamic
enum SocketShutdownHow : (CInt native_value)
{
RECEIVE = env::WIN32 ??? libc::SD_RECEIVE : libc::SHUT_RD,
SEND = env::WIN32 ??? libc::SD_SEND : libc::SHUT_WR,
BOTH = env::WIN32 ??? libc::SD_BOTH : libc::SHUT_RDWR,
RECEIVE { env::WIN32 ??? libc::SD_RECEIVE : libc::SHUT_RD },
SEND { env::WIN32 ??? libc::SD_SEND : libc::SHUT_WR },
BOTH { env::WIN32 ??? libc::SD_BOTH : libc::SHUT_RDWR },
}
fn void? Socket.shutdown(&self, SocketShutdownHow how)

View File

@@ -7,12 +7,12 @@ import std::encoding::hex;
enum UrlEncodingMode : char (String allowed)
{
UNRESERVED = "-_.~", // section 2.3
PATH = "$&+,/:;=@", // section 3.3
HOST = "!$&'()*+,;=:[]", // section 3.2.2 (also include ':', '[', ']' for ipv6 hosts)
USERPASS = ";:&=+$,", // section 3.2.1
QUERY = "", // section 3.4
FRAGMENT = "$&+,/:;=?@!()*", // section 4.1
UNRESERVED { "-_.~" }, // section 2.3
PATH { "$&+,/:;=@" }, // section 3.3
HOST { "!$&'()*+,;=:[]" }, // section 3.2.2 (also include ':', '[', ']' for ipv6 hosts)
USERPASS { ";:&=+$," }, // section 3.2.1
QUERY { "" }, // section 3.4
FRAGMENT { "$&+,/:;=?@!()*" }, // section 4.1
}
faultdef INVALID_HEX;

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,

View File

@@ -51,29 +51,29 @@ struct TzDateTime
enum Weekday : char (String name, String abbrev)
{
MONDAY = { "Monday", "Mon" },
TUESDAY = { "Tuesday", "Tue" },
WEDNESDAY = { "Wednesday", "Wed" },
THURSDAY = { "Thursday", "Thu" },
FRIDAY = { "Friday", "Fri" },
SATURDAY = { "Saturday", "Sat" },
SUNDAY = { "Sunday", "Sun" },
MONDAY { "Monday", "Mon" },
TUESDAY { "Tuesday", "Tue" },
WEDNESDAY { "Wednesday", "Wed" },
THURSDAY { "Thursday", "Thu" },
FRIDAY { "Friday", "Fri" },
SATURDAY { "Saturday", "Sat" },
SUNDAY { "Sunday", "Sun" },
}
enum Month : char (String name, String abbrev, int days, bool leap)
{
JANUARY = { "January", "Jan", 31, false },
FEBRUARY = { "February", "Feb", 28, true },
MARCH = { "March", "Mar", 31, false },
APRIL = { "April", "Apr", 30, false },
MAY = { "May", "May", 31, false },
JUNE = { "June", "Jun", 30, false },
JULY = { "July", "Jul", 31, false },
AUGUST = { "August", "Aug", 31, false },
SEPTEMBER = { "September", "Sep", 30, false },
OCTOBER = { "October", "Oct", 31, false },
NOVEMBER = { "November", "Nov", 30, false },
DECEMBER = { "December", "Dec", 31, false }
JANUARY { "January", "Jan", 31, false },
FEBRUARY { "February", "Feb", 28, true },
MARCH { "March", "Mar", 31, false },
APRIL { "April", "Apr", 30, false },
MAY { "May", "May", 31, false },
JUNE { "June", "Jun", 30, false },
JULY { "July", "Jul", 31, false },
AUGUST { "August", "Aug", 31, false },
SEPTEMBER { "September", "Sep", 30, false },
OCTOBER { "October", "Oct", 31, false },
NOVEMBER { "November", "Nov", 30, false },
DECEMBER { "December", "Dec", 31, false }
}
fn Time now()