如何为djinni定义constgetter

How to define const getters for djinni?

本文关键字:定义 constgetter djinni      更新时间:2023-10-16

我用djinni:定义了一个C++接口

member = interface +c {
    get_id(): string;
    get_name(): string;
}

我继承的实现使用常量getter,即

class MyMemeber: public Member {
  private:
    string id;
    string name;
  public:
    string get_id() const override { return id; }
    string get_name() const override { return name; }
}

由于const属性的原因,这显然无法编译。我可以教djinni也用constgetters生成基本接口吗?

虽然从一开始djinni就生成const方法(src/source/CppGenerator.scala的第295行),但它没有任何文档。只需在idl文件中的方法签名前添加const即可:

member = interface +c {
    const get_id(): string;
    const get_name(): string;
}

我认为对这个特性(以及一些文档)进行请求测试是个好主意,目前只测试const字段。