Skip to main content

dope_core/driver/
submission.rs

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