Files
Remi Rousselet 1566bd03fd Simplify Persist (#4131)
This changes the Persist syntax a bit to simplify its usage.

This removes the `with Persistable`

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Introduced a new `persistJson` method for JSON-based state
persistence, simplifying how persistence is integrated and allowing for
custom encoding/decoding.
- Added a `key` getter to provide default storage keys for persisted
providers.
- Exposed `NotifierPersistX` and related persistence utilities for
broader use in persistence scenarios.

- **Refactor**
- Unified and updated type signatures for notifiers and persistence
methods, improving type safety and consistency across providers.
- Simplified persistence API usage by removing the need for mixins and
named parameters, favoring direct method calls with positional
arguments.

- **Documentation**
- Updated documentation and code examples to reflect the new persistence
API and usage patterns.

- **Tests**
- Enhanced test coverage to validate the new persistence approach and
updated type signatures.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-31 20:47:38 +02:00

105 lines
2.7 KiB
Dart
Generated

// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: non_constant_identifier_names
part of 'codegen.dart';
// **************************************************************************
// RiverpodGenerator
// **************************************************************************
@ProviderFor(other)
const otherProvider = OtherProvider._();
final class OtherProvider extends $FunctionalProvider<int, int>
with $Provider<int> {
const OtherProvider._()
: super(
from: null,
argument: null,
retry: null,
name: r'otherProvider',
isAutoDispose: true,
dependencies: null,
$allTransitiveDependencies: null,
);
@override
String debugGetCreateSourceHash() => _$otherHash();
@$internal
@override
$ProviderElement<int> $createElement($ProviderPointer pointer) =>
$ProviderElement(pointer);
@override
int create(Ref ref) {
return other(ref);
}
/// {@macro riverpod.override_with_value}
Override overrideWithValue(int value) {
return $ProviderOverride(
origin: this,
providerOverride: $ValueProvider<int>(value),
);
}
}
String _$otherHash() => r'5d27b2b1b1c6bd17ba0844f74ade2088611be371';
@ProviderFor(Example)
const exampleProvider = ExampleProvider._();
final class ExampleProvider extends $NotifierProvider<Example, int> {
const ExampleProvider._()
: super(
from: null,
argument: null,
retry: null,
name: r'exampleProvider',
isAutoDispose: true,
dependencies: null,
$allTransitiveDependencies: null,
);
@override
String debugGetCreateSourceHash() => _$exampleHash();
@$internal
@override
Example create() => Example();
@$internal
@override
$NotifierProviderElement<Example, int> $createElement(
$ProviderPointer pointer) =>
$NotifierProviderElement(pointer);
/// {@macro riverpod.override_with_value}
Override overrideWithValue(int value) {
return $ProviderOverride(
origin: this,
providerOverride: $ValueProvider<int>(value),
);
}
}
String _$exampleHash() => r'893db991b377b8e314e60c429043e5e81f1fd526';
abstract class _$Example extends $Notifier<int> {
int build();
@$mustCallSuper
@override
void runBuild() {
final created = build();
final ref = this.ref as $Ref<int>;
final element = ref.element
as $ClassProviderElement<AnyNotifier<int, int>, int, Object?, Object?>;
element.handleValue(ref, created);
}
}
// 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