Hi,
I am trying to do this (vibe-d.0.7.28)
interface API {
//Sub-APIs
@property WebViewAPI webView();
}
class APIImpl : API {
private:
WebViewAPI mWebViewAPI;
public:
this() {
mWebViewAPI = new WebViewAPIImpl();
}
//Sub-APIs
@property WebViewAPI webView() {
return mWebViewAPI;
}
}
interface WebViewAPI {
//@property WebViewMapAPI map();
}
class WebViewAPIImpl : WebViewAPI {
}
but get the following error:
../../.dub/packages/vibe-d-0.7.28/vibe-d/source/vibe/web/internal/rest/jsclient.d(35,52): Error: no property 'name' for type 'SubInterface'
../../.dub/packages/vibe-d-0.7.28/vibe-d/source/vibe/web/rest.d(293,28): Error: template instance vibe.web.internal.rest.jsclient.generateInterface!(API, Appender!string) error instantiating
../../.dub/packages/vibe-d-0.7.28/vibe-d/source/vibe/web/rest.d(221,24): instantiated from here: generateRestJSClient!(API, Appender!string)
source/web/webserver.d(82,52): instantiated from here: serveRestJSClient!(API)
it seems like the SubInterface struct in vibe/web/internal/rest/common.d does not have the 'name' property that is asked for in vibe/web/internal/rest/jsclient.d:
common.d
struct SubInterface {
RestInterfaceSettings settings;
}
jsclient.d
foreach (i, SI; intf.SubInterfaceTypes) {
output.generateInterface!SI(intf.subInterfaces[i].name, intf.subInterfaces[i].settings);
}
I expect this is a bug? Or am I missing something? I assume the vibe examples in the 'examples' folder are run also as part of the regression run, and they use sub-interfaces..?
-Øivind