RFC: mysql-native - Supporting both Vibe.d and Phobos sockets
Nathan M. Swan
nathanmswan at gmail.com
Mon May 13 19:35:20 PDT 2013
On Sunday, 12 May 2013 at 21:16:33 UTC, Nick Sabalausky wrote:
> There is need for mysql-native
> <https://github.com/rejectedsoftware/mysql-native> to support
> both
> Vibe.d's sockets and Phobos sockets.
>
> Since Phobos's and Vibe.d's sockets have incompatible APIs, my
> design
> converts most of the types in mysql-native into templates. For
> example,
> 'Connection' becomes either 'Connection!mySQLSocketVibeD' or
> 'Connection!mySQLSocketPhobos'. The type 'Command' becomes
> either
> 'Command!mySQLSocketVibeD' or 'Connection!mySQLSocketPhobos'.
> And the
> same goes for most other types, such as Row, ResultSet, etc.
>
Does "incompatible APIs" preclude a design like this?
-----
interface MysqlSocket {
// ...
}
class PhobosSocket : MysqlSocket {
this(std.socket.Socket _backend) {
// ...
}
// ...
}
class VibeSocket : MysqlSocket {
this(vibe.core.net.TCPConnection _backend) {
// ...
}
}
-----
Sorry if I've overlooked anything obvious,
NMS
More information about the Digitalmars-d
mailing list