Added base entity.
This commit is contained in:
parent
8ce75ddff6
commit
a24ab226c2
|
@ -1,6 +1,17 @@
|
||||||
import std.stdio;
|
import slf4d;
|
||||||
|
import handy_httpd;
|
||||||
|
import handy_httpd.handlers.path_handler;
|
||||||
|
|
||||||
void main()
|
import model.base;
|
||||||
{
|
|
||||||
writeln("Edit source/app.d to start your project.");
|
void main() {
|
||||||
|
ServerConfig cfg;
|
||||||
|
cfg.workerPoolSize = 5;
|
||||||
|
cfg.port = 8080;
|
||||||
|
PathHandler pathHandler = new PathHandler();
|
||||||
|
pathHandler.addMapping(Method.GET, "/status", (ref ctx) {
|
||||||
|
ctx.response.writeBodyString("online");
|
||||||
|
});
|
||||||
|
HttpServer server = new HttpServer(pathHandler, cfg);
|
||||||
|
server.start();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
module model.base;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base class for all persistent entities with a unique integer id.
|
||||||
|
* It offers some basic utilities like equality and comparison by default.
|
||||||
|
*/
|
||||||
|
abstract class IdEntity {
|
||||||
|
const ulong id;
|
||||||
|
|
||||||
|
this(ulong id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
override bool opEquals(Object other) const {
|
||||||
|
if (IdEntity e = cast(IdEntity) other) {
|
||||||
|
return e.id == id;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
override size_t toHash() const {
|
||||||
|
import std.conv : to;
|
||||||
|
return id.to!size_t;
|
||||||
|
}
|
||||||
|
|
||||||
|
override string toString() const {
|
||||||
|
import std.format : format;
|
||||||
|
return format!"IdEntity(id = %d)"(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
override int opCmp(Object other) const {
|
||||||
|
if (IdEntity e = cast(IdEntity) other) {
|
||||||
|
return this.id < e.id;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue