LCOV - code coverage report
Current view: top level - src - mini_library.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 18 18 100.0 %
Date: 2022-08-13 17:52:58 Functions: 0 0 -

          Line data    Source code
       1             : import 'dart:convert';
       2             : 
       3             : import 'package:equatable/equatable.dart';
       4             : import 'package:mini_sprite/mini_sprite.dart';
       5             : 
       6             : /// {@template mini_library}
       7             : /// A class that holds a library of [MiniSprite]s.
       8             : /// {@endtemplate}
       9             : class MiniLibrary extends Equatable {
      10             :   /// {@macro mini_library}
      11           1 :   const MiniLibrary(this.sprites);
      12             : 
      13             :   /// {@macro mini_library}
      14           2 :   MiniLibrary.empty() : sprites = {};
      15             : 
      16             :   /// {@macro mini_library}
      17             :   ///
      18             :   /// Returns a [MiniLibrary] from the serialized data.
      19           1 :   factory MiniLibrary.fromDataString(String value) {
      20             :     const lineSplitter = LineSplitter();
      21           1 :     final lines = lineSplitter.convert(value);
      22             : 
      23           3 :     final sprites = lines.fold<Map<String, MiniSprite>>({}, (map, line) {
      24           1 :       final blocks = line.split('|');
      25           1 :       final name = blocks.first;
      26           1 :       final data = blocks.last;
      27             : 
      28           1 :       return {
      29           1 :         ...map,
      30           2 :         name: MiniSprite.fromDataString(data),
      31             :       };
      32             :     });
      33             : 
      34           1 :     return MiniLibrary(sprites);
      35             :   }
      36             : 
      37             :   /// Returns this as a data string.
      38           1 :   String toDataString() {
      39           4 :     return sprites.entries.map((entry) {
      40           4 :       return '${entry.key}|${entry.value.toDataString()}';
      41           1 :     }).join('\n');
      42             :   }
      43             : 
      44             :   /// The library of sprites.
      45             :   final Map<String, MiniSprite> sprites;
      46             : 
      47           1 :   @override
      48           2 :   List<Object?> get props => [sprites];
      49             : }

Generated by: LCOV version 1.15