1 module sha3iuf_d.wasm;
2 
3 
4 version (WebAssembly):
5 
6 version (SHA3IUF_D_WASM)
7 extern (C)
8 pure nothrow @safe @nogc @live
9 export void _start()
10 
11 	do
12 	{
13 	}
14 
15 version (SHA3IUF_D_WASM)
16 extern (C)
17 pure nothrow @trusted @nogc @live
18 export void* memset(return ubyte* s, int c, size_t n)
19 
20 	do
21 	{
22 		for (size_t i = 0; i < n; i++) {
23 			s[i] = cast(ubyte)(c);
24 		}
25 
26 		return s;
27 	}
28 
29 version (SHA3IUF_D_WASM)
30 extern (C)
31 pure nothrow @trusted @nogc @live
32 export void* memcpy(return ubyte* s1, scope const ubyte* s2, size_t n)
33 
34 	do
35 	{
36 		for (size_t i = 0; i < n; i++) {
37 			s1[i] = s2[i];
38 		}
39 
40 		return s1;
41 	}
42 
43 version (SHA3IUF_D_ENABLE_STATIC_BUFFER) {
44 	enum input_buffer_length = 4096;
45 	enum output_buffer_length = 512 / 8;
46 
47 	export ubyte[.input_buffer_length] input_buffer;
48 	export ubyte[.output_buffer_length] output_buffer;
49 
50 	extern (C)
51 	pure nothrow @safe @nogc @live
52 	export size_t input_buf_length()
53 
54 		do
55 		{
56 			return .input_buffer_length;
57 		}
58 
59 	extern (C)
60 	pure nothrow @safe @nogc @live
61 	export size_t output_buf_length()
62 
63 		do
64 		{
65 			return .output_buffer_length;
66 		}
67 
68 	extern (C)
69 	nothrow @nogc @trusted @live
70 	export ubyte* get_input_buffer_address()
71 
72 		do
73 		{
74 			return &(.input_buffer[0]);
75 		}
76 
77 	extern (C)
78 	nothrow @nogc @trusted @live
79 	export ubyte* get_output_buffer_address()
80 
81 		do
82 		{
83 			return &(.output_buffer[0]);
84 		}
85 }