pub struct ZoneEngine { /* private fields */ }Implementations§
Source§impl ZoneEngine
impl ZoneEngine
pub fn new( pool: SqlitePool, cfg: Arc<Config>, recorder: Arc<RecorderManager>, ) -> Arc<Self>
Sourcepub async fn process(&self, camera_id: &str, detections: &[DetectionIngest])
pub async fn process(&self, camera_id: &str, detections: &[DetectionIngest])
Evaluate (tracked) detections for a camera against its zones, raising events. Membership is driven by server time; the worker-supplied timestamp is not trusted for state/timing.
Trait Implementations§
Source§impl DetectionConsumer for ZoneEngine
impl DetectionConsumer for ZoneEngine
Source§fn interested_in(&self, _task_type: &str) -> bool
fn interested_in(&self, _task_type: &str) -> bool
The zone engine evaluates any tracked detection, regardless of task type.
Source§fn consume<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
batch: &'life1 DetectionBatch<'life2>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn consume<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
batch: &'life1 DetectionBatch<'life2>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Process a persisted batch. Must not panic; errors are the consumer’s own to log/handle.
Auto Trait Implementations§
impl !Freeze for ZoneEngine
impl !RefUnwindSafe for ZoneEngine
impl !UnwindSafe for ZoneEngine
impl Send for ZoneEngine
impl Sync for ZoneEngine
impl Unpin for ZoneEngine
impl UnsafeUnpin for ZoneEngine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more