Skip to main content

dope_core/driver/
submission.rs

1use crate::backend::ops::raw::submission::SubmissionBackend;
2use crate::backend::{Backend, RetainedSqe, Sqe};
3
4use super::{DriverContext, PushError};
5
6pub trait Submission {
7    fn push(&mut self, sqe: Sqe) -> Result<(), PushError>;
8    fn push_retained(&mut self, sqe: RetainedSqe) -> Result<(), PushError>;
9    fn flush_submissions(&mut self) -> bool;
10}
11
12impl Submission for DriverContext<'_, '_> {
13    fn push(&mut self, sqe: Sqe) -> Result<(), PushError> {
14        <Backend as SubmissionBackend>::push(self.backend(), sqe)
15    }
16
17    fn push_retained(&mut self, sqe: RetainedSqe) -> Result<(), PushError> {
18        <Backend as SubmissionBackend>::push(self.backend(), Sqe::from_retained(sqe))
19    }
20
21    fn flush_submissions(&mut self) -> bool {
22        <Backend as SubmissionBackend>::flush_submissions(self.backend())
23    }
24}