LCOV - code coverage report
Current view: top level - core/services - local_safe_call.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 9 10 90.0 %
Date: 2026-03-02 18:37:46 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:tech_proof/core/error/logger_service.dart';
       2             : import 'package:dartz/dartz.dart'; // Assuming you're using dartz for Either
       3             : 
       4             : // Define a base Failure class and some concrete Failure types
       5             : 
       6             : abstract class Failure {
       7             :   final String message;
       8           1 :   Failure(this.message);
       9             : }
      10             : 
      11             : class UnexpectedFailure extends Failure {
      12           0 :   UnexpectedFailure(super.message);
      13             : }
      14             : 
      15             : class SharedPreferencesFailure extends Failure {
      16           1 :   SharedPreferencesFailure(super.message);
      17             : }
      18             : 
      19             : /// Safely executes a synchronous SharedPreferences operation.
      20             : ///
      21             : /// Returns a [Right] containing the result [T] on success,
      22             : /// or a [Left] containing a [Failure] on error.
      23           1 : Either<Failure, T> safeSharedPreferencesCall<T>(T Function() request) {
      24             :   try {
      25           1 :     final result = request();
      26           1 :     return Right(result);
      27             :   } catch (e, st) {
      28           2 :     LoggerService.error("SharedPreferences", e.toString(), st);
      29             :     // You could try to parse the error type if you expect specific SharedPreferences errors,
      30             :     // but for now, a generic UnexpectedFailure is a good starting point.
      31           1 :     return Left(
      32           1 :       SharedPreferencesFailure(
      33           2 :         "Error accessing SharedPreferences: ${e.toString()}",
      34             :       ),
      35             :     );
      36             :   }
      37             : }

Generated by: LCOV version 1.14