pub struct SqlxBackend { /* private fields */ }Implementations§
Source§impl SqlxBackend
impl SqlxBackend
pub fn new(db: Arc<ThingsDatabase>) -> Self
Trait Implementations§
Source§impl MutationBackend for SqlxBackend
impl MutationBackend for SqlxBackend
Source§fn kind(&self) -> &'static str
fn kind(&self) -> &'static str
Static identifier for the backend implementation. Used by the MCP server
to expose which backend is in use (
"sqlx" direct-DB vs. "applescript"
CulturedCode-supported) without an Any downcast.fn create_task<'life0, 'async_trait>(
&'life0 self,
request: CreateTaskRequest,
) -> Pin<Box<dyn Future<Output = ThingsResult<ThingsId>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn bulk_create_tasks<'life0, 'async_trait>(
&'life0 self,
request: BulkCreateTasksRequest,
) -> Pin<Box<dyn Future<Output = ThingsResult<BulkOperationResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn bulk_create_tasks<'life0, 'async_trait>(
&'life0 self,
request: BulkCreateTasksRequest,
) -> Pin<Box<dyn Future<Output = ThingsResult<BulkOperationResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Create multiple tasks in one call. Best-effort and non-atomic — per-item
failures are reported via
BulkOperationResult.fn update_task<'life0, 'async_trait>(
&'life0 self,
request: UpdateTaskRequest,
) -> Pin<Box<dyn Future<Output = ThingsResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn complete_task<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ThingsId,
) -> Pin<Box<dyn Future<Output = ThingsResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn uncomplete_task<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ThingsId,
) -> Pin<Box<dyn Future<Output = ThingsResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_task<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ThingsId,
child_handling: DeleteChildHandling,
) -> Pin<Box<dyn Future<Output = ThingsResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn bulk_delete<'life0, 'async_trait>(
&'life0 self,
request: BulkDeleteRequest,
) -> Pin<Box<dyn Future<Output = ThingsResult<BulkOperationResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn bulk_move<'life0, 'async_trait>(
&'life0 self,
request: BulkMoveRequest,
) -> Pin<Box<dyn Future<Output = ThingsResult<BulkOperationResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn bulk_update_dates<'life0, 'async_trait>(
&'life0 self,
request: BulkUpdateDatesRequest,
) -> Pin<Box<dyn Future<Output = ThingsResult<BulkOperationResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn bulk_complete<'life0, 'async_trait>(
&'life0 self,
request: BulkCompleteRequest,
) -> Pin<Box<dyn Future<Output = ThingsResult<BulkOperationResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_project<'life0, 'async_trait>(
&'life0 self,
request: CreateProjectRequest,
) -> Pin<Box<dyn Future<Output = ThingsResult<ThingsId>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update_project<'life0, 'async_trait>(
&'life0 self,
request: UpdateProjectRequest,
) -> Pin<Box<dyn Future<Output = ThingsResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn complete_project<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ThingsId,
child_handling: ProjectChildHandling,
) -> Pin<Box<dyn Future<Output = ThingsResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_project<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ThingsId,
child_handling: ProjectChildHandling,
) -> Pin<Box<dyn Future<Output = ThingsResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_area<'life0, 'async_trait>(
&'life0 self,
request: CreateAreaRequest,
) -> Pin<Box<dyn Future<Output = ThingsResult<ThingsId>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update_area<'life0, 'async_trait>(
&'life0 self,
request: UpdateAreaRequest,
) -> Pin<Box<dyn Future<Output = ThingsResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_area<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ThingsId,
) -> Pin<Box<dyn Future<Output = ThingsResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn create_tag<'life0, 'async_trait>(
&'life0 self,
request: CreateTagRequest,
force: bool,
) -> Pin<Box<dyn Future<Output = ThingsResult<TagCreationResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_tag<'life0, 'async_trait>(
&'life0 self,
request: CreateTagRequest,
force: bool,
) -> Pin<Box<dyn Future<Output = ThingsResult<TagCreationResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Create a tag. When
force is true, skip duplicate / similarity checks
(mirrors the legacy create_tag_force path); otherwise run the smart
flow that may return Existing or SimilarFound.fn update_tag<'life0, 'async_trait>(
&'life0 self,
request: UpdateTagRequest,
) -> Pin<Box<dyn Future<Output = ThingsResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_tag<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ThingsId,
remove_from_tasks: bool,
) -> Pin<Box<dyn Future<Output = ThingsResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn add_tag_to_task<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
task_id: &'life1 ThingsId,
tag_title: &'life2 str,
) -> Pin<Box<dyn Future<Output = ThingsResult<TagAssignmentResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn remove_tag_from_task<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
task_id: &'life1 ThingsId,
tag_title: &'life2 str,
) -> Pin<Box<dyn Future<Output = ThingsResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Auto Trait Implementations§
impl Freeze for SqlxBackend
impl !RefUnwindSafe for SqlxBackend
impl Send for SqlxBackend
impl Sync for SqlxBackend
impl Unpin for SqlxBackend
impl UnsafeUnpin for SqlxBackend
impl !UnwindSafe for SqlxBackend
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
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