LCOV - code coverage report
Current view: top level - lib/provider - provider.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 27 27 100.0 %
Date: 2023-10-11 10:27:27 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:meta/meta.dart';
       2             : 
       3             : import 'base_provider.dart';
       4             : import 'providers_container.dart';
       5             : 
       6             : class Provider<E> extends BaseProvider<E, dynamic> {
       7           1 :   Provider(super.callback);
       8             : 
       9           1 :   static ArgumentsProvider<E, A> withArguments<E, A>(
      10             :     CreatorCallback<E, A> callback,
      11             :   ) {
      12           1 :     return ArgumentsProvider<E, A>(callback);
      13             :   }
      14             : }
      15             : 
      16             : class ArgumentsProvider<E, A> extends BaseProvider<E, A> {
      17           1 :   ArgumentsProvider(super.callback);
      18             : }
      19             : 
      20             : abstract class BaseFactoryProvider<E, A> extends BaseProvider<E, A> {
      21           1 :   BaseFactoryProvider(super.callback);
      22             : 
      23           1 :   @override
      24             :   @visibleForTesting
      25             :   @protected
      26             :   E read({String? tag}) {
      27           1 :     throw AssertionError('read is not allowed for FactoryProviders');
      28             :   }
      29             : 
      30           1 :   @override
      31             :   @visibleForTesting
      32             :   @protected
      33             :   bool mounted({String? tag}) {
      34           1 :     throw AssertionError('mounted is not allowed for FactoryProviders');
      35             :   }
      36             : 
      37           1 :   @override
      38             :   @visibleForTesting
      39             :   @protected
      40             :   void setArguments(A args, {String? tag}) {
      41           1 :     throw AssertionError('setArguments is not allowed for FactoryProviders');
      42             :   }
      43             : 
      44           1 :   @override
      45             :   @visibleForTesting
      46             :   @protected
      47             :   Element<E>? dispose({String? tag}) {
      48           1 :     return super.dispose(tag: tag);
      49             :   }
      50             : }
      51             : 
      52             : class FactoryProvider<E> extends BaseFactoryProvider<E, dynamic> {
      53           1 :   FactoryProvider(super.callback);
      54             : 
      55           1 :   FactoryElement<E, dynamic> get() {
      56           1 :     final ref = Ref(tag: null);
      57             : 
      58           1 :     return FactoryElement<E, dynamic>(
      59             :       ref: ref,
      60           1 :     )..set(
      61           3 :         creator.callback(ref),
      62             :       );
      63             :   }
      64             : 
      65           1 :   static FactoryArgumentsProvider<E, A> withArguments<E, A>(
      66             :     CreatorCallback<E, A> creatorCallback,
      67             :   ) {
      68           1 :     return FactoryArgumentsProvider(
      69             :       creatorCallback,
      70             :     );
      71             :   }
      72             : }
      73             : 
      74             : class FactoryArgumentsProvider<E, A> extends BaseFactoryProvider<E, A> {
      75           1 :   FactoryArgumentsProvider(super.callback);
      76             : 
      77           1 :   FactoryElement<E, A> get(A args) {
      78           2 :     final ref = Ref<A>(tag: null)..setArguments(args);
      79             : 
      80           1 :     return FactoryElement<E, A>(
      81             :       ref: ref,
      82           1 :     )..set(
      83           3 :         creator.callback(ref),
      84             :       );
      85             :   }
      86             : }

Generated by: LCOV version 1.16