pub const Optional = packed struct(u32) 9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119 pub const Optional = packed struct(u32) {
index: u29,
kind: Metadata.Kind,
is_none: bool,
pub const none: Metadata.Optional = .{ .index = 0, .kind = .string, .is_none = true };
pub const empty_tuple: Metadata.Optional = Metadata.empty_tuple.toOptional();
pub fn wrap(metadata: ?Metadata) Metadata.Optional {
return (metadata orelse return .none).toOptional();
}
pub fn unwrap(metadata: Metadata.Optional) ?Metadata {
return if (metadata.is_none) null else .{ .index = metadata.index, .kind = metadata.kind };
}
pub fn toValue(metadata: Metadata.Optional) Value {
return if (metadata.unwrap()) |m| m.toValue() else .none;
}
pub fn toString(metadata: Metadata.Optional) Metadata.String.Optional {
return if (metadata.unwrap()) |m| m.toString().toOptional() else .none;
}
}