Dart 对于可能为空的字段有特殊的语法 ?
,该库会自动把 Option
翻译为 ?
。你可以查看
官方文档 了解更多。
此外,flutter_rust_bridge
也能够处理 Dart 中的 required
关键字:如果一个参数不能为空,它就会被标记为
required
。如果它可以为空,那就不需要 required
,Dart 默认为 null。
pub struct Element {
pub tag: Option<String>,
pub text: Option<String>,
pub attributes: Option<Vec<Attribute>>,
pub children: Option<Vec<Element>>,
}
pub fn parse(mode: String, document: Option<String>) -> Option<Element> { ... }
转换为:
Future<Element?> handleOptionalStruct({required String mode, String? document});
class Element {
final String? tag;
final String? text;
final List<Attribute>? attributes;
final List<Element>? children;
Element({this.tag, this.text, this.attributes, this.children});
}
注意:如果你对 Future
感兴趣,请看 这里.