14 个版本 (重大更改)
0.12.0 | 2022 年 12 月 28 日 |
---|---|
0.11.0 | 2021 年 11 月 24 日 |
0.10.0 | 2021 年 3 月 30 日 |
0.9.1 | 2020 年 9 月 18 日 |
0.3.0 | 2019 年 12 月 25 日 |
#1592 in 编码
每月 298 次下载
用于 6 个 crate (3 个直接使用)
84KB
2K SLoC
此 crate 包含在 Bolt 协议中使用的原语。枚举 Message
和 Value
特别重要,是 Bolt 客户端/服务器发送和接收信息的主要信息单元。
枚举 Message
封装了客户端和服务器之间可以发送的所有可能的消息。
pub enum Message {
// V1-compatible message types
Init(Init),
Run(Run),
DiscardAll,
PullAll,
AckFailure,
Reset,
Record(Record),
Success(Success),
Failure(Failure),
Ignored,
// V3+-compatible message types
Hello(Hello),
Goodbye,
RunWithMetadata(RunWithMetadata),
Begin(Begin),
Commit,
Rollback,
// V4+-compatible message types
Discard(Discard),
Pull(Pull),
// V4.3+-compatible message types
Route(Route),
// v4.4-compatible message types
RouteWithMetadata(RouteWithMetadata),
}
有关更多详细信息,请参阅文档。
枚举 Value
封装了在每种类型的 Message
中可以发送的所有可能值。例如,结构 List
和 Map
允许 Value
以任意复杂度嵌套。
pub enum Value {
// V1-compatible value types
Boolean(bool),
Integer(i64),
Float(f64),
Bytes(Vec<u8>),
List(Vec<Value>),
Map(HashMap<String, Value>),
Null,
String(String),
Node(Node),
Relationship(Relationship),
Path(Path),
UnboundRelationship(UnboundRelationship),
// V2+-compatible value types
Date(NaiveDate), // A date without a time zone, i.e. LocalDate
Time(NaiveTime, FixedOffset), // A time with UTC offset, i.e. OffsetTime
DateTimeOffset(DateTime<FixedOffset>), // A date-time with UTC offset, i.e. OffsetDateTime
DateTimeZoned(DateTime<Tz>), // A date-time with time zone ID, i.e. ZonedDateTime
LocalTime(NaiveTime), // A time without time zone
LocalDateTime(NaiveDateTime), // A date-time without time zone
Duration(Duration),
Point2D(Point2D),
Point3D(Point3D),
}
您很少需要直接构建变体(除了 Value::Null
)。相反,您通常应使用 Value::from
在您希望转换的类型上。有关更多详细信息,请参阅文档。
依赖项
~3.5–4.5MB
~84K SLoC