dtolnay/cxx

Support member typedefs (nested types)

Open

#593 创建于 2020年12月23日

在 GitHub 查看
 (0 评论) (1 反应) (0 负责人)Rust (4,472 star) (253 fork)batch import
help wanted

描述

For example the following binding involving https://en.cppreference.com/w/cpp/container/map/at on a std::map:

class json {
public:
  using number = double;
  using string = std::string;
  using array = std::vector<json>;
  using object = std::map<string, json>;
  ...
private:
  std::variant<std::monostate, number, string, array, object> value;
};
#[cxx::bridge]
mod ffi {
    unsafe extern "C++" {
        type json;

        fn at<'a>(self: &'a json::object, key: &CxxString) -> &'a json;
    }
}

Maybe also as:

#[cxx::bridge]
mod ffi {
    unsafe extern "C++" {
        type json;

        #[cxx_name = "json::object"]
        type object;

        fn at<'a>(self: &'a object, key: &CxxString) -> &'a json;
    }
}

贡献者指南