Skip to main content

valence_core/
batch.rs

1//! Batch create hooks for codegen `BatchCreatable` impls (full batch runtime is host-owned).
2
3use async_trait::async_trait;
4use serde::de::DeserializeOwned;
5use serde::Serialize;
6
7use crate::error::Result;
8use crate::record_id::RecordId;
9use crate::runtime::Valence;
10
11/// Marker trait for models participating in batch create codegen.
12#[async_trait]
13pub trait BatchCreatable: Serialize + DeserializeOwned + Send + 'static {
14    fn table_name() -> &'static str;
15
16    fn set_id(&mut self, id: RecordId);
17
18    async fn ensure_ownership_after_batch_create(
19        _created_row: serde_json::Value,
20        _valence: &Valence,
21    ) -> Result<()> {
22        Ok(())
23    }
24}