possum/c_api/types/
value.rs

1use crate::{SnapshotValue, Value, *};
2
3// Opaque to the C interface.
4/// Represents a value obtained from a reader, before or after snapshot occurs.
5pub(crate) enum PossumValue {
6    ReaderValue(Value),
7    SnapshotValue(SnapshotValue<Value>),
8}
9
10impl AsRef<Value> for PossumValue {
11    fn as_ref(&self) -> &Value {
12        match self {
13            Self::ReaderValue(value) => value,
14            Self::SnapshotValue(sv) => sv,
15        }
16    }
17}
18
19impl Deref for PossumValue {
20    type Target = Value;
21
22    fn deref(&self) -> &Self::Target {
23        match self {
24            Self::ReaderValue(value) => value,
25            Self::SnapshotValue(sv) => sv,
26        }
27    }
28}