On Sat, 21 Sep 2013 00:51:52 GMT, simendsjo wrote:

I didn't want to write all those "copy from row to object", so I hacked together something with UDAs

    @dbexpr("FROM user ORDER BY username ASC")
    struct UserListItem
    {
        @dbexpr("user_id")
        int user_id;

        @dbexpr("username")
        string username;
    }
    const users = db.queryExpr!UserListItem;

    res.render!("user.list.dt", req, users);

Possible improvement proposal! :) One can simply use __traits(identifier) in absence of @dbexpr on member field to keep interface more DRY when names match.

I absolutely love declarative programming in D though. Working on REST module was no doubt my most awesome D coding experience :)