функтор принимает?
(это должно заработать на flutter/dart)
class Event<T> {
final List<dynamic> _guards;
ActionFunc? _action;
Event._(this._guards);
factory Event(List<dynamic> guards) => Event._(guards);
Event<T> operator /(ActionFunc action) {
this._action = action;
return this;
}
bool isValid(T event, dynamic context) {
if (_guards.isEmpty) return true;
return _guards.every((guard) {
try {
// First try with one argument.
return guard(event);
} catch (_) {
try {
// Then try with two arguments.
return guard(event, context);
} catch (_) {
try {
// Another attempt to swap arguments
return guard(context, event);
} catch (_) {
// If all fail, throw an exception.
throw Exception('Unsupported guard type');
}
}
}
});
}
}
После C++ 20, невозможно нормально писать на dart, как вы тут живёте без интроспекции? Без нормальных шаблонов, без вариадиков?
Да вроде прекрасно все живут, интроспекции немного не хватает, приходится заниматься кодогенерацией, а все остальное не нужно
Проекты видимо простые. А что делать в моём примере, брать: https://pub.dev/packages/reflectable ?
Судя по их ридми, в твоём примере оно не подойдёт
Но судя по этому лучше и не сделать, кроме как руками подбирать аргументы
Обсуждают сегодня