< 返回版块

lisiur 发表于 2020-12-01 10:04

Tags:diesel

diesel里有个 table! 宏,能够展开为以表名为名字的模块,模块里有个table 结构体,这个结构体实现了n多个trait,我现在想在一个新的库里对这种 table 进行 NewType 的封装。那我的NewType里如何描述呢?

table! {
    posts (id) {
        id -> Integer,
        title -> Varchar,
        body -> Varchar,
        published -> Bool,
    }
}

正常情况下的使用是这样的:

posts::table
.select(posts::title)
.load::<String>(&conn)

我想使用一个NewType做一次封装类似这样:

struct Query(?);
impl Query(?) {
    fn table(table) -> Query {
        Query(table)
    }
    fn select(mut self) -> Self {}
    fn load(mut self) -> Self {}
}

Query::table(posts::table)
.select(posts::title)
.load::<String>(&conn)

评论区

写评论

还没有评论

1 共 0 条评论, 1 页