From a58f34b889188e880ee7949bdb0c4037477fa6f3 Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Thu, 27 Jun 2024 16:12:17 +0200 Subject: [PATCH] Explain role of processed manager --- drift/lib/src/runtime/manager/manager.dart | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/drift/lib/src/runtime/manager/manager.dart b/drift/lib/src/runtime/manager/manager.dart index f43ce646d..939cbedf4 100644 --- a/drift/lib/src/runtime/manager/manager.dart +++ b/drift/lib/src/runtime/manager/manager.dart @@ -485,8 +485,18 @@ abstract class BaseTableManager< .watchSingleOrNull(); } -/// A table manager that exposes methods to a table manager that already has filters/orderings/limit applied -// As of now this is identical to [BaseTableManager] but it's kept seperate for future extensibility +/// A table manager that exposes methods to a table manager that already has +/// filters/orderings/limit applied. +/// +/// Some methods, like [RootTableManager.create] are intentionally not present +/// on [ProcessedTableManager] because combining e.g. [BaseTableManager.filter] +/// with [RootTableManager.create] makes little sense - there is no `WHERE` +/// clause on inserts. +/// By introducing a separate interface for managers with filters applied to +/// them, the API doesn't allow combining incompatible clauses and operations. +/// +// As of now this is identical to [BaseTableManager] but it's kept seperate for +// future extensibility. @immutable class ProcessedTableManager< $Database extends GeneratedDatabase, @@ -503,7 +513,8 @@ class ProcessedTableManager< ProcessedTableManager(super.$state); } -/// A table manager with top level function for creating, reading, updating, and deleting items +/// A table manager with top level function for creating, reading, updating, and +/// deleting items. @immutable abstract class RootTableManager< $Database extends GeneratedDatabase,