use crate::ctx::Context;
use crate::dbs::Options;
use crate::dbs::Statement;
use crate::dbs::Transaction;
use crate::doc::Document;
use crate::err::Error;
impl<'a> Document<'a> {
pub async fn changefeeds(
&self,
_ctx: &Context<'_>,
opt: &Options,
txn: &Transaction,
_stm: &Statement<'_>,
) -> Result<(), Error> {
if !self.changed() {
return Ok(());
}
let tb = self.tb(opt, txn).await?;
let run = txn.clone();
let mut run = run.lock().await;
let db = run.add_and_cache_db(opt.ns(), opt.db(), opt.strict).await?;
if db.changefeed.is_some() || tb.changefeed.is_some() {
let tb = tb.name.as_str();
let id = self.id.as_ref().unwrap();
run.record_change(opt.ns(), opt.db(), tb, id, self.current.doc.clone());
}
Ok(())
}
}