file actor

This commit is contained in:
randogoth 2026-06-07 15:26:11 +03:00
parent 11e55a4f44
commit 8c165edc0c
5 changed files with 83 additions and 1 deletions

39
lib/src/file_actor.dart Normal file
View file

@ -0,0 +1,39 @@
import 'dart:io';
import 'package:actors/actors.dart';
sealed class FileMessage {
const FileMessage();
}
final class LoadFile extends FileMessage {
final String path;
const LoadFile(this.path);
}
final class SaveFile extends FileMessage {
final String path;
final String content;
const SaveFile(this.path, this.content);
}
sealed class FileResult {
const FileResult();
}
final class FileLoaded extends FileResult {
final String content;
const FileLoaded(this.content);
}
final class FileSaved extends FileResult {
const FileSaved();
}
class FileActor with Handler<FileMessage, FileResult> {
@override
Future<FileResult> handle(FileMessage message) => switch (message) {
LoadFile(:final path) => File(path).readAsString().then(FileLoaded.new),
SaveFile(:final path, :final content) =>
File(path).writeAsString(content).then((_) => const FileSaved()),
};
}

1
lib/swarm.dart Normal file
View file

@ -0,0 +1 @@
export 'src/file_actor.dart';