NatrixCommand constructor
NatrixCommand({
- required String id,
- String? tooltip,
- required String description,
- required NatrixCommandCallback callback,
- String argumentTip = "",
- bool inheritFlags = false,
- List<
NatrixFlag> flags = const [], - List<
NatrixCommand> children = const [],
Implementation
factory NatrixCommand.new({
required final String id,
String? tooltip,
required final String description,
required final NatrixCommandCallback callback,
final String argumentTip = "",
final bool inheritFlags = false,
bool hidden = false,
final List<NatrixFlag> flags = const [],
final List<NatrixCommand> children = const [],
}) {
void same(final NatrixFlag a, final NatrixFlag b) {
bool twin = a.id == b.id;
twin = twin || a.acronym == b.acronym;
if (twin) {
throw Exception(
"A conflict with the flag ${a.id} has been detected. "
"Please change the relevant acronym or identifier.",
);
}
}
flags.forEach((f) => flags.where((o) => o != f).forEach((o) => same(f, o)));
hidden = id.isEmpty || hidden;
return NatrixCommand._internal(
id: id,
tooltip: tooltip,
description: description,
hidden: hidden,
argumentTip: argumentTip,
inheritFlags: inheritFlags,
flags: flags,
children: children,
callback: callback,
);
}