migration done

This commit is contained in:
Fabian Freund
2025-09-19 11:50:34 +02:00
parent b01012c76c
commit 79da47d11b
198 changed files with 17341 additions and 15711 deletions
@@ -20,14 +20,14 @@
import 'dart:ui';
import 'package:drift/drift.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/database/daos/container.drift.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/database/database.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/database/definitions.drift.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/models/container_data.dart';
part 'container.g.dart';
@DriftAccessor()
class ContainerDao extends DatabaseAccessor<TabDatabase>
with _$ContainerDaoMixin {
with $ContainerDaoMixin {
ContainerDao(super.db);
Future<void> addContainer(ContainerData container) {
@@ -99,27 +99,39 @@ class ContainerDao extends DatabaseAccessor<TabDatabase>
String? containerId, {
int bucket = 0,
}) {
return db.leadingOrderKey(bucket: bucket, containerId: containerId);
return db.definitionsDrift.leadingOrderKey(
bucket: bucket,
containerId: containerId,
);
}
SingleSelectable<String> generateTrailingOrderKey(
String? containerId, {
int bucket = 0,
}) {
return db.trailingOrderKey(bucket: bucket, containerId: containerId);
return db.definitionsDrift.trailingOrderKey(
bucket: bucket,
containerId: containerId,
);
}
SingleSelectable<String> generateOrderKeyAfterTabId(
String? containerId,
String tabId,
) {
return db.orderKeyAfterTab(containerId: containerId, tabId: tabId);
return db.definitionsDrift.orderKeyAfterTab(
containerId: containerId,
tabId: tabId,
);
}
SingleSelectable<String> generateOrderKeyBeforeTabId(
String? containerId,
String tabId,
) {
return db.orderKeyBeforeTab(containerId: containerId, tabId: tabId);
return db.definitionsDrift.orderKeyBeforeTab(
containerId: containerId,
tabId: tabId,
);
}
}
@@ -0,0 +1,7 @@
// dart format width=80
// ignore_for_file: type=lint
import 'package:drift/drift.dart' as i0;
import 'package:weblibre/features/geckoview/features/tabs/data/database/database.dart'
as i1;
mixin $ContainerDaoMixin on i0.DatabaseAccessor<i1.TabDatabase> {}
@@ -1,6 +0,0 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'container.dart';
// ignore_for_file: type=lint
mixin _$ContainerDaoMixin on DatabaseAccessor<TabDatabase> {}
@@ -23,13 +23,13 @@ import 'package:drift/drift.dart';
import 'package:lexo_rank/lexo_rank.dart';
import 'package:nullability/nullability.dart';
import 'package:weblibre/features/geckoview/domain/entities/states/tab.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/database/daos/tab.drift.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/database/database.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/database/definitions.drift.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/models/tab_query_result.dart';
part 'tab.g.dart';
@DriftAccessor()
class TabDao extends DatabaseAccessor<TabDatabase> with _$TabDaoMixin {
class TabDao extends DatabaseAccessor<TabDatabase> with $TabDaoMixin {
final _undoHistory = <String, TabData>{};
Timer? _clearHistoryTimer;
@@ -258,7 +258,7 @@ class TabDao extends DatabaseAccessor<TabDatabase> with _$TabDaoMixin {
final ftsQuery = db.buildFtsQuery(searchString);
if (ftsQuery.isNotEmpty) {
return db.queryTabsFullContent(
return db.definitionsDrift.queryTabsFullContent(
query: ftsQuery,
snippetLength: snippetLength,
beforeMatch: matchPrefix,
@@ -266,7 +266,9 @@ class TabDao extends DatabaseAccessor<TabDatabase> with _$TabDaoMixin {
ellipsis: ellipsis,
);
} else {
return db.queryTabsBasic(query: db.buildLikeQuery(searchString));
return db.definitionsDrift.queryTabsBasic(
query: db.buildLikeQuery(searchString),
);
}
}
}
@@ -0,0 +1,7 @@
// dart format width=80
// ignore_for_file: type=lint
import 'package:drift/drift.dart' as i0;
import 'package:weblibre/features/geckoview/features/tabs/data/database/database.dart'
as i1;
mixin $TabDaoMixin on i0.DatabaseAccessor<i1.TabDatabase> {}
@@ -1,6 +0,0 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'tab.dart';
// ignore_for_file: type=lint
mixin _$TabDaoMixin on DatabaseAccessor<TabDatabase> {}
@@ -18,20 +18,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import 'package:drift/drift.dart';
import 'package:flutter/widgets.dart' show Color;
import 'package:weblibre/data/database/converters/color.dart';
import 'package:weblibre/data/database/converters/uri.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/database/converters/container_metadata_converter.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/database/daos/container.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/database/daos/tab.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/models/container_data.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/models/tab_query_result.dart';
import 'package:weblibre/features/geckoview/features/tabs/data/database/database.drift.dart';
import 'package:weblibre/features/search/domain/fts_tokenizer.dart';
part 'database.g.dart';
@DriftDatabase(include: {'database.drift'}, daos: [ContainerDao, TabDao])
class TabDatabase extends _$TabDatabase with TrigramQueryBuilderMixin {
@DriftDatabase(include: {'definitions.drift'}, daos: [ContainerDao, TabDao])
class TabDatabase extends $TabDatabase with TrigramQueryBuilderMixin {
@override
final int schemaVersion = 2;
@@ -44,7 +37,7 @@ class TabDatabase extends _$TabDatabase with TrigramQueryBuilderMixin {
MigrationStrategy get migration => MigrationStrategy(
beforeOpen: (details) async {
await customStatement('PRAGMA foreign_keys = ON;');
await optimizeFtsIndex();
await definitionsDrift.optimizeFtsIndex();
},
);
@@ -0,0 +1,135 @@
// dart format width=80
// ignore_for_file: type=lint
import 'package:drift/drift.dart' as i0;
import 'package:weblibre/features/geckoview/features/tabs/data/database/definitions.drift.dart'
as i1;
import 'package:weblibre/features/geckoview/features/tabs/data/database/daos/container.dart'
as i2;
import 'package:weblibre/features/geckoview/features/tabs/data/database/database.dart'
as i3;
import 'package:weblibre/features/geckoview/features/tabs/data/database/daos/tab.dart'
as i4;
import 'package:drift/internal/modular.dart' as i5;
import 'package:sqlite3/common.dart' as i6;
abstract class $TabDatabase extends i0.GeneratedDatabase {
$TabDatabase(i0.QueryExecutor e) : super(e);
$TabDatabaseManager get managers => $TabDatabaseManager(this);
late final i1.Container container = i1.Container(this);
late final i1.Tab tab = i1.Tab(this);
late final i1.TabFts tabFts = i1.TabFts(this);
late final i2.ContainerDao containerDao = i2.ContainerDao(
this as i3.TabDatabase,
);
late final i4.TabDao tabDao = i4.TabDao(this as i3.TabDatabase);
i1.DefinitionsDrift get definitionsDrift => i5.ReadDatabaseContainer(
this,
).accessor<i1.DefinitionsDrift>(i1.DefinitionsDrift.new);
@override
Iterable<i0.TableInfo<i0.Table, Object?>> get allTables =>
allSchemaEntities.whereType<i0.TableInfo<i0.Table, Object?>>();
@override
List<i0.DatabaseSchemaEntity> get allSchemaEntities => [
container,
tab,
tabFts,
i1.tabMaintainParentChainOnDelete,
i1.tabAfterInsert,
i1.tabAfterDelete,
i1.tabAfterUpdate,
];
@override
i0.StreamQueryUpdateRules get streamUpdateRules =>
const i0.StreamQueryUpdateRules([
i0.WritePropagation(
on: i0.TableUpdateQuery.onTableName(
'container',
limitUpdateKind: i0.UpdateKind.delete,
),
result: [i0.TableUpdate('tab', kind: i0.UpdateKind.delete)],
),
i0.WritePropagation(
on: i0.TableUpdateQuery.onTableName(
'tab',
limitUpdateKind: i0.UpdateKind.delete,
),
result: [i0.TableUpdate('tab', kind: i0.UpdateKind.update)],
),
i0.WritePropagation(
on: i0.TableUpdateQuery.onTableName(
'tab',
limitUpdateKind: i0.UpdateKind.insert,
),
result: [i0.TableUpdate('tab_fts', kind: i0.UpdateKind.insert)],
),
i0.WritePropagation(
on: i0.TableUpdateQuery.onTableName(
'tab',
limitUpdateKind: i0.UpdateKind.delete,
),
result: [i0.TableUpdate('tab_fts', kind: i0.UpdateKind.insert)],
),
i0.WritePropagation(
on: i0.TableUpdateQuery.onTableName(
'tab',
limitUpdateKind: i0.UpdateKind.update,
),
result: [i0.TableUpdate('tab_fts', kind: i0.UpdateKind.insert)],
),
]);
}
class $TabDatabaseManager {
final $TabDatabase _db;
$TabDatabaseManager(this._db);
i1.$ContainerTableManager get container =>
i1.$ContainerTableManager(_db, _db.container);
i1.$TabTableManager get tab => i1.$TabTableManager(_db, _db.tab);
i1.$TabFtsTableManager get tabFts => i1.$TabFtsTableManager(_db, _db.tabFts);
}
extension DefineFunctions on i6.CommonDatabase {
void defineFunctions({
required String Function(int, String?) lexoRankNext,
required String Function(int, String?) lexoRankPrevious,
required String Function(String?, String?) lexoRankReorderAfter,
required String Function(String?, String?) lexoRankReorderBefore,
}) {
createFunction(
functionName: 'lexo_rank_next',
argumentCount: const i6.AllowedArgumentCount(2),
function: (args) {
final arg0 = args[0] as int;
final arg1 = args[1] as String?;
return lexoRankNext(arg0, arg1);
},
);
createFunction(
functionName: 'lexo_rank_previous',
argumentCount: const i6.AllowedArgumentCount(2),
function: (args) {
final arg0 = args[0] as int;
final arg1 = args[1] as String?;
return lexoRankPrevious(arg0, arg1);
},
);
createFunction(
functionName: 'lexo_rank_reorder_after',
argumentCount: const i6.AllowedArgumentCount(2),
function: (args) {
final arg0 = args[0] as String?;
final arg1 = args[1] as String?;
return lexoRankReorderAfter(arg0, arg1);
},
);
createFunction(
functionName: 'lexo_rank_reorder_before',
argumentCount: const i6.AllowedArgumentCount(2),
function: (args) {
final arg0 = args[0] as String?;
final arg1 = args[1] as String?;
return lexoRankReorderBefore(arg0, arg1);
},
);
}
}
@@ -13,12 +13,13 @@ abstract class _$ContainerAuthSettingsCWProxy {
ContainerAuthSettings lockTimeout(Duration? lockTimeout);
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ContainerAuthSettings(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
/// Creates a new instance with the provided field values.
/// Passing `null` to a nullable field nullifies it, while `null` for a non-nullable field is ignored. To update a single field use `ContainerAuthSettings(...).copyWith.fieldName(value)`.
///
/// Usage
/// Example:
/// ```dart
/// ContainerAuthSettings(...).copyWith(id: 12, name: "My name")
/// ````
/// ```
ContainerAuthSettings call({
bool authenticationRequired,
bool lockOnAppBackground,
@@ -26,7 +27,8 @@ abstract class _$ContainerAuthSettingsCWProxy {
});
}
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfContainerAuthSettings.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfContainerAuthSettings.copyWith.fieldName(...)`
/// Callable proxy for `copyWith` functionality.
/// Use as `instanceOfContainerAuthSettings.copyWith(...)` or call `instanceOfContainerAuthSettings.copyWith.fieldName(value)` for a single field.
class _$ContainerAuthSettingsCWProxyImpl
implements _$ContainerAuthSettingsCWProxy {
const _$ContainerAuthSettingsCWProxyImpl(this._value);
@@ -35,23 +37,24 @@ class _$ContainerAuthSettingsCWProxyImpl
@override
ContainerAuthSettings authenticationRequired(bool authenticationRequired) =>
this(authenticationRequired: authenticationRequired);
call(authenticationRequired: authenticationRequired);
@override
ContainerAuthSettings lockOnAppBackground(bool lockOnAppBackground) =>
this(lockOnAppBackground: lockOnAppBackground);
call(lockOnAppBackground: lockOnAppBackground);
@override
ContainerAuthSettings lockTimeout(Duration? lockTimeout) =>
this(lockTimeout: lockTimeout);
call(lockTimeout: lockTimeout);
@override
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ContainerAuthSettings(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
/// Creates a new instance with the provided field values.
/// Passing `null` to a nullable field nullifies it, while `null` for a non-nullable field is ignored. To update a single field use `ContainerAuthSettings(...).copyWith.fieldName(value)`.
///
/// Usage
/// Example:
/// ```dart
/// ContainerAuthSettings(...).copyWith(id: 12, name: "My name")
/// ````
/// ```
ContainerAuthSettings call({
Object? authenticationRequired = const $CopyWithPlaceholder(),
Object? lockOnAppBackground = const $CopyWithPlaceholder(),
@@ -59,11 +62,14 @@ class _$ContainerAuthSettingsCWProxyImpl
}) {
return ContainerAuthSettings(
authenticationRequired:
authenticationRequired == const $CopyWithPlaceholder()
authenticationRequired == const $CopyWithPlaceholder() ||
authenticationRequired == null
? _value.authenticationRequired
// ignore: cast_nullable_to_non_nullable
: authenticationRequired as bool,
lockOnAppBackground: lockOnAppBackground == const $CopyWithPlaceholder()
lockOnAppBackground:
lockOnAppBackground == const $CopyWithPlaceholder() ||
lockOnAppBackground == null
? _value.lockOnAppBackground
// ignore: cast_nullable_to_non_nullable
: lockOnAppBackground as bool,
@@ -76,7 +82,8 @@ class _$ContainerAuthSettingsCWProxyImpl
}
extension $ContainerAuthSettingsCopyWith on ContainerAuthSettings {
/// Returns a callable class that can be used as follows: `instanceOfContainerAuthSettings.copyWith(...)` or like so:`instanceOfContainerAuthSettings.copyWith.fieldName(...)`.
/// Returns a callable class used to build a new instance with modified fields.
/// Example: `instanceOfContainerAuthSettings.copyWith(...)` or `instanceOfContainerAuthSettings.copyWith.fieldName(...)`.
// ignore: library_private_types_in_public_api
_$ContainerAuthSettingsCWProxy get copyWith =>
_$ContainerAuthSettingsCWProxyImpl(this);
@@ -91,12 +98,13 @@ abstract class _$ContainerMetadataCWProxy {
ContainerMetadata useProxy(bool useProxy);
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ContainerMetadata(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
/// Creates a new instance with the provided field values.
/// Passing `null` to a nullable field nullifies it, while `null` for a non-nullable field is ignored. To update a single field use `ContainerMetadata(...).copyWith.fieldName(value)`.
///
/// Usage
/// Example:
/// ```dart
/// ContainerMetadata(...).copyWith(id: 12, name: "My name")
/// ````
/// ```
ContainerMetadata call({
IconData? iconData,
String? contextualIdentity,
@@ -105,33 +113,35 @@ abstract class _$ContainerMetadataCWProxy {
});
}
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfContainerMetadata.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfContainerMetadata.copyWith.fieldName(...)`
/// Callable proxy for `copyWith` functionality.
/// Use as `instanceOfContainerMetadata.copyWith(...)` or call `instanceOfContainerMetadata.copyWith.fieldName(value)` for a single field.
class _$ContainerMetadataCWProxyImpl implements _$ContainerMetadataCWProxy {
const _$ContainerMetadataCWProxyImpl(this._value);
final ContainerMetadata _value;
@override
ContainerMetadata iconData(IconData? iconData) => this(iconData: iconData);
ContainerMetadata iconData(IconData? iconData) => call(iconData: iconData);
@override
ContainerMetadata contextualIdentity(String? contextualIdentity) =>
this(contextualIdentity: contextualIdentity);
call(contextualIdentity: contextualIdentity);
@override
ContainerMetadata authSettings(ContainerAuthSettings authSettings) =>
this(authSettings: authSettings);
call(authSettings: authSettings);
@override
ContainerMetadata useProxy(bool useProxy) => this(useProxy: useProxy);
ContainerMetadata useProxy(bool useProxy) => call(useProxy: useProxy);
@override
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ContainerMetadata(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
/// Creates a new instance with the provided field values.
/// Passing `null` to a nullable field nullifies it, while `null` for a non-nullable field is ignored. To update a single field use `ContainerMetadata(...).copyWith.fieldName(value)`.
///
/// Usage
/// Example:
/// ```dart
/// ContainerMetadata(...).copyWith(id: 12, name: "My name")
/// ````
/// ```
ContainerMetadata call({
Object? iconData = const $CopyWithPlaceholder(),
Object? contextualIdentity = const $CopyWithPlaceholder(),
@@ -147,11 +157,12 @@ class _$ContainerMetadataCWProxyImpl implements _$ContainerMetadataCWProxy {
? _value.contextualIdentity
// ignore: cast_nullable_to_non_nullable
: contextualIdentity as String?,
authSettings: authSettings == const $CopyWithPlaceholder()
authSettings:
authSettings == const $CopyWithPlaceholder() || authSettings == null
? _value.authSettings
// ignore: cast_nullable_to_non_nullable
: authSettings as ContainerAuthSettings,
useProxy: useProxy == const $CopyWithPlaceholder()
useProxy: useProxy == const $CopyWithPlaceholder() || useProxy == null
? _value.useProxy
// ignore: cast_nullable_to_non_nullable
: useProxy as bool,
@@ -160,7 +171,8 @@ class _$ContainerMetadataCWProxyImpl implements _$ContainerMetadataCWProxy {
}
extension $ContainerMetadataCopyWith on ContainerMetadata {
/// Returns a callable class that can be used as follows: `instanceOfContainerMetadata.copyWith(...)` or like so:`instanceOfContainerMetadata.copyWith.fieldName(...)`.
/// Returns a callable class used to build a new instance with modified fields.
/// Example: `instanceOfContainerMetadata.copyWith(...)` or `instanceOfContainerMetadata.copyWith.fieldName(...)`.
// ignore: library_private_types_in_public_api
_$ContainerMetadataCWProxy get copyWith =>
_$ContainerMetadataCWProxyImpl(this);
@@ -175,12 +187,13 @@ abstract class _$ContainerDataCWProxy {
ContainerData metadata(ContainerMetadata? metadata);
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ContainerData(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
/// Creates a new instance with the provided field values.
/// Passing `null` to a nullable field nullifies it, while `null` for a non-nullable field is ignored. To update a single field use `ContainerData(...).copyWith.fieldName(value)`.
///
/// Usage
/// Example:
/// ```dart
/// ContainerData(...).copyWith(id: 12, name: "My name")
/// ````
/// ```
ContainerData call({
String id,
String? name,
@@ -189,32 +202,34 @@ abstract class _$ContainerDataCWProxy {
});
}
/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfContainerData.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfContainerData.copyWith.fieldName(...)`
/// Callable proxy for `copyWith` functionality.
/// Use as `instanceOfContainerData.copyWith(...)` or call `instanceOfContainerData.copyWith.fieldName(value)` for a single field.
class _$ContainerDataCWProxyImpl implements _$ContainerDataCWProxy {
const _$ContainerDataCWProxyImpl(this._value);
final ContainerData _value;
@override
ContainerData id(String id) => this(id: id);
ContainerData id(String id) => call(id: id);
@override
ContainerData name(String? name) => this(name: name);
ContainerData name(String? name) => call(name: name);
@override
ContainerData color(Color color) => this(color: color);
ContainerData color(Color color) => call(color: color);
@override
ContainerData metadata(ContainerMetadata? metadata) =>
this(metadata: metadata);
call(metadata: metadata);
@override
/// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `ContainerData(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
/// Creates a new instance with the provided field values.
/// Passing `null` to a nullable field nullifies it, while `null` for a non-nullable field is ignored. To update a single field use `ContainerData(...).copyWith.fieldName(value)`.
///
/// Usage
/// Example:
/// ```dart
/// ContainerData(...).copyWith(id: 12, name: "My name")
/// ````
/// ```
ContainerData call({
Object? id = const $CopyWithPlaceholder(),
Object? name = const $CopyWithPlaceholder(),
@@ -222,7 +237,7 @@ class _$ContainerDataCWProxyImpl implements _$ContainerDataCWProxy {
Object? metadata = const $CopyWithPlaceholder(),
}) {
return ContainerData(
id: id == const $CopyWithPlaceholder()
id: id == const $CopyWithPlaceholder() || id == null
? _value.id
// ignore: cast_nullable_to_non_nullable
: id as String,
@@ -230,7 +245,7 @@ class _$ContainerDataCWProxyImpl implements _$ContainerDataCWProxy {
? _value.name
// ignore: cast_nullable_to_non_nullable
: name as String?,
color: color == const $CopyWithPlaceholder()
color: color == const $CopyWithPlaceholder() || color == null
? _value.color
// ignore: cast_nullable_to_non_nullable
: color as Color,
@@ -243,7 +258,8 @@ class _$ContainerDataCWProxyImpl implements _$ContainerDataCWProxy {
}
extension $ContainerDataCopyWith on ContainerData {
/// Returns a callable class that can be used as follows: `instanceOfContainerData.copyWith(...)` or like so:`instanceOfContainerData.copyWith.fieldName(...)`.
/// Returns a callable class used to build a new instance with modified fields.
/// Example: `instanceOfContainerData.copyWith(...)` or `instanceOfContainerData.copyWith.fieldName(...)`.
// ignore: library_private_types_in_public_api
_$ContainerDataCWProxy get copyWith => _$ContainerDataCWProxyImpl(this);
}
@@ -6,22 +6,46 @@ part of 'providers.dart';
// RiverpodGenerator
// **************************************************************************
String _$tabDatabaseHash() => r'422bd4789296dc271fabbd5906f2e2ab16bccaa3';
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint, type=warning
/// See also [tabDatabase].
@ProviderFor(tabDatabase)
final tabDatabaseProvider = Provider<TabDatabase>.internal(
tabDatabase,
name: r'tabDatabaseProvider',
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
? null
: _$tabDatabaseHash,
dependencies: null,
allTransitiveDependencies: null,
);
const tabDatabaseProvider = TabDatabaseProvider._();
@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
typedef TabDatabaseRef = ProviderRef<TabDatabase>;
// ignore_for_file: type=lint
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
final class TabDatabaseProvider
extends $FunctionalProvider<TabDatabase, TabDatabase, TabDatabase>
with $Provider<TabDatabase> {
const TabDatabaseProvider._()
: super(
from: null,
argument: null,
retry: null,
name: r'tabDatabaseProvider',
isAutoDispose: false,
dependencies: null,
$allTransitiveDependencies: null,
);
@override
String debugGetCreateSourceHash() => _$tabDatabaseHash();
@$internal
@override
$ProviderElement<TabDatabase> $createElement($ProviderPointer pointer) =>
$ProviderElement(pointer);
@override
TabDatabase create(Ref ref) {
return tabDatabase(ref);
}
/// {@macro riverpod.override_with_value}
Override overrideWithValue(TabDatabase value) {
return $ProviderOverride(
origin: this,
providerOverride: $SyncValueProvider<TabDatabase>(value),
);
}
}
String _$tabDatabaseHash() => r'422bd4789296dc271fabbd5906f2e2ab16bccaa3';