smart_domain 0.1.0 copy "smart_domain: ^0.1.0" to clipboard
smart_domain: ^0.1.0 copied to clipboard

Dependency-free Result, Failure, and UseCase primitives for Clean Architecture domain layers.

example/smart_domain_example.dart

import 'package:smart_domain/smart_domain.dart';

final class User {
  const User(this.name);

  final String name;
}

final class LoadUser extends UseCase<User, int> {
  const LoadUser();

  @override
  Future<Result<User, Failure>> execute(int id) async {
    if (id <= 0) {
      return const FailureResult(NotFoundFailure(message: 'Invalid user ID'));
    }
    return const Success(User('Ada'));
  }
}

Future<void> main() async {
  final result = await const LoadUser()(42);
  print(
    result.fold(
      onSuccess: (user) => user.name,
      onFailure: (failure) => failure,
    ),
  );
}
1
likes
0
points
195
downloads

Publisher

verified publisherpinz.dev

Weekly Downloads

Dependency-free Result, Failure, and UseCase primitives for Clean Architecture domain layers.

Repository (GitHub)
View/report issues

License

unknown (license)

More

Packages that depend on smart_domain