1 module awebview.wrapper.webconfig;
2
3 import awebview.wrapper.webstring : WebString, WebStringCpp;
4 import awebview.wrapper.webstringarray : WebStringArray, WebStringArrayCpp;
5 import awebview.wrapper.webstringarray;
6 public import awebview.wrapper.cpp : LogLevel;
7 import awebview.wrapper.cpp;
8 import std.algorithm : move;
9
10 import carbon.memory;
11
12
13 struct WebConfig
14 {
15 static WebConfig opCall() nothrow @nogc
16 {
17 WebConfig dst;
18 WebConfigMember.ctor(&dst._wc);
19
20 return dst;
21 }
22
23
24 this(this) nothrow @nogc
25 {
26 callAllPostblit(packagePath);
27 callAllPostblit(pluginPath);
28 callAllPostblit(logPath);
29 callAllPostblit(childProcessPath);
30 callAllPostblit(userAgent);
31 callAllPostblit(remoteDebuggingHost);
32 callAllPostblit(userScript);
33 callAllPostblit(userStyleSheet);
34 callAllPostblit(assetProtocol);
35 callAllPostblit(additionalOptions);
36 }
37
38
39 ~this() nothrow @nogc
40 {
41 callAllDtor(packagePath);
42 callAllDtor(pluginPath);
43 callAllDtor(logPath);
44 callAllDtor(childProcessPath);
45 callAllDtor(userAgent);
46 callAllDtor(remoteDebuggingHost);
47 callAllDtor(userScript);
48 callAllDtor(userStyleSheet);
49 callAllDtor(assetProtocol);
50 callAllDtor(additionalOptions);
51 }
52
53
54 @property
55 {
56 inout(awebview.wrapper.cpp.WebConfig)* cppObj() inout pure nothrow @safe @nogc
57 { return &_wc; }
58
59 ref inout(LogLevel) logLevel() inout pure nothrow @trusted @nogc
60 { return _wc.log_level; }
61
62 ref inout(WebStringCpp) packagePath() inout pure nothrow @trusted @nogc
63 { return *cast(typeof(return)*)&_wc.package_path; }
64
65 ref inout(WebStringCpp) pluginPath() inout pure nothrow @trusted @nogc
66 { return *cast(typeof(return)*)&_wc.plugin_path; }
67
68 ref inout(WebStringCpp) logPath() inout pure nothrow @trusted @nogc
69 { return *cast(typeof(return)*)&_wc.log_path; }
70
71 ref inout(WebStringCpp) childProcessPath() inout pure nothrow @trusted @nogc
72 { return *cast(typeof(return)*)&_wc.child_process_path; }
73
74 ref inout(WebStringCpp) userAgent() inout pure nothrow @trusted @nogc
75 { return *cast(typeof(return)*)&_wc.user_agent; }
76
77 ref inout(int) remoteDebuggingPort() inout pure nothrow @safe @nogc
78 { return _wc.remote_debugging_port; }
79
80 ref inout(WebStringCpp) remoteDebuggingHost() inout pure nothrow @trusted @nogc
81 { return *cast(typeof(return)*)&_wc.remote_debugging_host; }
82
83 ref inout(bool) reduceMemoryUsageOnNavigation() inout pure nothrow @safe @nogc
84 { return _wc.reduce_memory_usage_on_navigation; }
85
86 ref inout(WebStringCpp) userScript() inout pure nothrow @trusted @nogc
87 { return *cast(typeof(return)*)&_wc.user_script; }
88
89 ref inout(WebStringCpp) userStyleSheet() inout pure nothrow @trusted @nogc
90 { return *cast(typeof(return)*)&_wc.user_stylesheet; }
91
92 ref inout(WebStringCpp) assetProtocol() inout pure nothrow @trusted @nogc
93 { return *cast(typeof(return)*)&_wc.asset_protocol; }
94
95 ref inout(WebStringArrayCpp) additionalOptions() inout nothrow @nogc
96 { return *cast(typeof(return)*)&_wc.additional_options; }
97 }
98
99
100 private:
101 awebview.wrapper.cpp.WebConfig _wc;
102 }