1 module awebview.wrapper.cpp.jsvalue;
2 
3 
4 mixin template Awesomium()
5 {
6     interface JSValue
7     {
8         static struct Field { void* value_; }
9     }
10 }
11 
12 
13 mixin template Awesomium4D()
14 {
15     extern(C++, JSValueMember)
16     {
17         size_t sizeOfInstance();
18         void ctor(JSValue p);
19         void ctor(JSValue p, bool value);
20         void ctor(JSValue p, int value);
21         void ctor(JSValue p, double value);
22         void ctor(JSValue p, const(WebString) value);
23         void ctor(JSValue p, const(JSObject) value);
24         void ctor(JSValue p, const(JSArray) value);
25         void ctor(JSValue p, const(JSValue) original);
26         JSValue newCtor();
27         JSValue newCtor(bool value);
28         JSValue newCtor(int value);
29         JSValue newCtor(double value);
30         JSValue newCtor(const(WebString) value);
31         JSValue newCtor(const(JSObject) value);
32         JSValue newCtor(const(JSArray) value);
33         JSValue newCtor(const(JSValue) original);
34         void dtor(JSValue p);
35         void deleteDtor(JSValue p);
36         JSValue opAssign(JSValue p, const(JSValue) rhs);
37         const(JSValue) Undefined();
38         const(JSValue) Null();
39         bool IsBoolean(const JSValue p);
40         bool IsInteger(const(JSValue) p);
41         bool IsDouble(const(JSValue) p);
42         bool IsNumber(const(JSValue) p);
43         bool IsString(const(JSValue) p);
44         bool IsArray(const(JSValue) p);
45         bool IsObject(const(JSValue) p);
46         bool IsNull(const(JSValue) p);
47         bool IsUndefined(const(JSValue) p);
48         void ToString(const(JSValue) p, WebString dst);
49         int ToInteger(const JSValue p);
50         double ToDouble(const JSValue p);
51         bool ToBoolean(const JSValue p);
52         JSArray ToArray(JSValue p);
53         const(JSArray) ToArray(const(JSValue) p);
54         JSObject ToObject(JSValue p);
55         const(JSObject) ToObject(const(JSValue) p);
56     }
57 
58     unittest {
59         assert(JSValueMember.sizeOfInstance()
60             == JSValue.Field.sizeof);
61 
62         static struct JSValueD {;
63             JSValue cppObj() @nogc nothrow @trusted { return cast(JSValue)cast(void*)&_field; }
64             private JSValue.Field _field;
65         }
66     }
67 }