[][src]Trait dodo::entity::Entity

pub trait Entity: Serialize + DeserializeOwned {
    fn id(&self) -> Option<Uuid>;
fn set_id(&mut self, id: Option<Uuid>); }

Entity in a repository.

Entities are identified by a Uuid, chosen by a repository. Having no id (i.e. None) usually means it is not persisted in a repository.

Entities are required to be serializable and deserializable in order to be persisted.

Example

use dodo::prelude::*;
use serde::{Deserialize, Serialize};
use uuid::Uuid;

#[derive(Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Person {
    id: Option<Uuid>,
    name: String,
    age: u64,
}

impl Entity for Person {
    fn id(&self) -> Option<Uuid> { self.id }
    fn set_id(&mut self,id: Option<Uuid>) { self.id = id }
}

Derive

Use the Entity derive to quickly implement this trait.

use dodo::prelude::*;
use serde::{Deserialize, Serialize};
use uuid::Uuid;

#[derive(Entity, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Person {
    id: Option<Uuid>,
    name: String,
    age: u64,
}

Required methods

fn id(&self) -> Option<Uuid>

Id.

fn set_id(&mut self, id: Option<Uuid>)

Set the id.

Loading content...

Implementors

Loading content...