Entity

Struct Entity 

Source
pub struct Entity {
    pub id: String,
    pub entity_type: EntityType,
    pub name: String,
    pub content: String,
    pub metadata: HashMap<String, String>,
    pub embedding: Option<Vec<f32>>,
    pub created_at: DateTime<Utc>,
    pub updated_at: DateTime<Utc>,
    pub document_time: Option<DateTime<Utc>>,
    pub event_time: Option<DateTime<Utc>>,
    pub source_ref: Option<SourceRef>,
}
Expand description

An entity in archival memory.

TigerStyle: Explicit fields, no Option where not needed.

§Temporal Metadata (ADR-006)

Entities support bi-temporal tracking:

  • document_time: When the source document was created (e.g., email sent date)
  • event_time: When the event actually occurred (e.g., “I met Alice last Tuesday”)

This enables queries like “What happened last week?” to find events by when they occurred, not just when they were recorded.

Fields§

§id: String

Unique identifier (UUID v4)

§entity_type: EntityType

Type of entity

§name: String

Display name

§content: String

Main content

§metadata: HashMap<String, String>

Additional metadata

§embedding: Option<Vec<f32>>

Embedding vector (for semantic search)

§created_at: DateTime<Utc>

Creation timestamp (when stored in Umi)

§updated_at: DateTime<Utc>

Last update timestamp

§document_time: Option<DateTime<Utc>>

When source document was created (e.g., email sent date)

§event_time: Option<DateTime<Utc>>

When event actually occurred (e.g., “last Tuesday”)

§source_ref: Option<SourceRef>

Reference to source content (for multimedia workflows)

Implementations§

Source§

impl Entity

Source

pub fn new(entity_type: EntityType, name: String, content: String) -> Self

Create a new entity with required fields.

§Panics

Panics if name or content exceed limits.

Source

pub fn builder( entity_type: EntityType, name: String, content: String, ) -> EntityBuilder

Create a builder for more complex entity construction.

Source

pub fn has_embedding(&self) -> bool

Check if entity has an embedding.

Source

pub fn get_metadata(&self, key: &str) -> Option<&str>

Get metadata value.

Source

pub fn update_content(&mut self, content: String)

Update content and timestamp.

Source

pub fn set_embedding(&mut self, embedding: Vec<f32>)

Set embedding.

Source

pub fn set_document_time(&mut self, time: DateTime<Utc>)

Set document time (when source was created).

Source

pub fn set_event_time(&mut self, time: DateTime<Utc>)

Set event time (when event actually occurred).

Source

pub fn document_time(&self) -> Option<DateTime<Utc>>

Get document time.

Source

pub fn event_time(&self) -> Option<DateTime<Utc>>

Get event time.

Source

pub fn has_temporal_metadata(&self) -> bool

Check if entity has temporal metadata.

Source

pub fn set_source_ref(&mut self, source_ref: SourceRef)

Set source reference (for multimedia content).

Source

pub fn source_ref(&self) -> Option<&SourceRef>

Get source reference.

Source

pub fn has_source_ref(&self) -> bool

Check if entity has a source reference.

Trait Implementations§

Source§

impl Clone for Entity

Source§

fn clone(&self) -> Entity

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Entity

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Entity

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for Entity

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl Freeze for Entity

§

impl RefUnwindSafe for Entity

§

impl Send for Entity

§

impl Sync for Entity

§

impl Unpin for Entity

§

impl UnwindSafe for Entity

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,