pub struct PropertyDef {
pub name: DbString,
pub value_type: ValueType,
pub nullable: bool,
pub default: Option<Value>,
pub immutable: bool,
pub unique: bool,
pub record_fields: Option<Box<RecordFieldStructure>>,
}Expand description
Property schema definition.
Fields§
§name: DbStringProperty name.
value_type: ValueTypeProperty value type.
nullable: boolWhether Value::Null is allowed.
default: Option<Value>Optional default value.
immutable: boolWhether updates to this property are forbidden after creation.
unique: boolWhether non-null property values must be unique within the declaring type.
record_fields: Option<Box<RecordFieldStructure>>Inline RECORD field structure when PropertyDef::value_type resolves to a
RecordTyped property. None for every non-record property; Some(Open) for an
open/bare RECORD; Some(Closed(..)) for a closed/typed RECORD{..}. The
None-vs-Some(Open) distinction is load-bearing: it is the only durable signal
that a bare RECORD property is record-typed (its ValueType is otherwise
indistinguishable from a scalar Null on the WAL side), so without it WAL replay
would degrade an open record to Null. Carried for WAL durability, symmetric to
the rkyv snapshot-side
selene_graph::graph_types::PropertyTypeDef::record_field_types.
Trait Implementations§
Source§impl Clone for PropertyDef
impl Clone for PropertyDef
Source§fn clone(&self) -> PropertyDef
fn clone(&self) -> PropertyDef
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PropertyDef
impl Debug for PropertyDef
Source§impl<'de> Deserialize<'de> for PropertyDef
impl<'de> Deserialize<'de> for PropertyDef
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<PropertyDefV1> for PropertyDef
impl From<PropertyDefV1> for PropertyDef
Source§fn from(value: PropertyDefV1) -> Self
fn from(value: PropertyDefV1) -> Self
Source§impl PartialEq for PropertyDef
impl PartialEq for PropertyDef
Source§fn eq(&self, other: &PropertyDef) -> bool
fn eq(&self, other: &PropertyDef) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for PropertyDef
impl Serialize for PropertyDef
impl StructuralPartialEq for PropertyDef
Auto Trait Implementations§
impl Freeze for PropertyDef
impl RefUnwindSafe for PropertyDef
impl Send for PropertyDef
impl Sync for PropertyDef
impl Unpin for PropertyDef
impl UnsafeUnpin for PropertyDef
impl UnwindSafe for PropertyDef
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.