On Thu, 03 Jul 2014 13:30:05 GMT, Yuriy wrote:

What is a good approach to associate @before function with this of a REST interface?

int someBeforeFunction(HTTPServerRequest req, HTTPServerResponse res)
{
    // I want my REST implementation here!
    return 0;
}

interface MyInterface
{
    @before!someBeforeFunction("some"):
    void myFunction(int some);
}

Currently the only approach i see is referencing through an explicit static variable. Is there a better solution?

I've recently written a little (hygienic) mixin based hack to support member functions and private functions for @before/@after for registerWebInterface(). This isn't yet ported to registerRestInterface(), though:

class MyWebService {
	private {
		int m_someInt;
	}

	// defined in vibe.internal.meta.funcattr
	mixin PrivateAccessProxy;

	@before!someBeforeFunction("_someint")
	void getSomething(int _someint)
	{
	}

	private int someBeforeFunction(HTTPServerRequest req, HTTPServerResponse res)
	{
		return m_someInt;
	}
}

I've opened #708 for this.