text-document-common 1.4.0

Shared entities, database, events, and undo/redo infrastructure for text-document
Documentation
// Generated by Qleany v1.4.8 from common_da_use_cases_get_relationship_count.tera

use super::traits::ReadRelUoWFactory;
use crate::types::EntityId;
use anyhow::Result;

pub struct GetRelationshipCountUseCase<RF, F: ReadRelUoWFactory<RF>> {
    uow_factory: F,
    _phantom: std::marker::PhantomData<RF>,
}

impl<RF, F: ReadRelUoWFactory<RF>> GetRelationshipCountUseCase<RF, F> {
    pub fn new(uow_factory: F) -> Self {
        GetRelationshipCountUseCase {
            uow_factory,
            _phantom: std::marker::PhantomData,
        }
    }

    pub fn execute(&self, id: &EntityId, field: &RF) -> Result<usize> {
        let uow = self.uow_factory.create();
        uow.begin_transaction()?;
        let result = uow.get_relationship_count(id, field)?;
        uow.end_transaction()?;
        Ok(result)
    }
}