feat: добавить адаптеры Color и IconData для Hive

This commit is contained in:
2025-06-09 22:30:13 +03:00
parent c638b6ee4f
commit a68c2cd4b3
3 changed files with 45 additions and 1 deletions
+22
View File
@@ -0,0 +1,22 @@
import 'package:flutter/material.dart';
import 'package:hive_ce/hive.dart';
/// Кастомный адаптер для сериализации Color в Hive
/// Преобразует Color в int и обратно для хранения в базе данных
class ColorAdapter extends TypeAdapter<Color> {
@override
final int typeId = 100; // Уникальный ID для этого адаптера
@override
Color read(BinaryReader reader) {
// Читаем int значение и создаем Color
final colorValue = reader.readInt();
return Color(colorValue);
}
@override
void write(BinaryWriter writer, Color obj) {
// Записываем значение цвета как int
writer.writeInt(obj.value);
}
}
+22
View File
@@ -0,0 +1,22 @@
import 'package:flutter/material.dart';
import 'package:hive_ce/hive.dart';
/// Кастомный адаптер для сериализации IconData в Hive
/// Преобразует IconData в int (codePoint) и обратно
class IconDataAdapter extends TypeAdapter<IconData> {
@override
final int typeId = 101; // Уникальный ID для этого адаптера
@override
IconData read(BinaryReader reader) {
// Читаем codePoint и создаем IconData
final codePoint = reader.readInt();
return IconData(codePoint, fontFamily: 'MaterialIcons');
}
@override
void write(BinaryWriter writer, IconData obj) {
// Записываем codePoint иконки
writer.writeInt(obj.codePoint);
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:hive_ce/hive.dart';
import '../../utils/id_generator.dart';
import '../utils/id_generator.dart';
part 'category.g.dart';