Adds a CLI Argument parser

This commit is contained in:
zontreck 2024-07-02 22:12:06 -07:00
parent 4ac95f605b
commit 7d045bd49f
8 changed files with 328 additions and 1 deletions

View file

@ -0,0 +1,24 @@
import 'package:libac_dart/argparse/Args.dart';
class BoolArgument extends Argument<bool> {
bool _value = false;
BoolArgument({required super.name, super.description = ""}) {
hasValue = true;
_value = true;
}
@override
ArgumentType getType() {
return ArgumentType.BOOL;
}
@override
bool getValue() {
return _value;
}
@override
String toString() {
return "BooleanArgument{ ${name}=${_value} }";
}
}

View file

@ -0,0 +1,49 @@
import 'package:libac_dart/argparse/Args.dart';
class IntegerArgument extends Argument<int> {
final int value;
IntegerArgument(
{required super.name, required this.value, super.description = ""}) {
hasValue = value != 0;
}
@override
int getValue() {
return value;
}
@override
ArgumentType getType() {
return ArgumentType.INTEGER;
}
@override
String toString() {
return "IntegerArgument{ ${name}=${value} }";
}
}
class DoubleArgument extends Argument<double> {
final double value;
DoubleArgument(
{required super.name, required this.value, super.description = ""}) {
hasValue = value != 0.0;
}
@override
ArgumentType getType() {
return ArgumentType.DOUBLE;
}
@override
double getValue() {
return value;
}
@override
String toString() {
return "DoubleArgument{ ${name}=${value} }";
}
}

View file

@ -0,0 +1,24 @@
import 'package:libac_dart/argparse/Args.dart';
class StringArgument extends Argument<String> {
final String value;
StringArgument({required super.name, required this.value}) {
hasValue = value.isNotEmpty;
}
@override
String getValue() {
return value;
}
@override
ArgumentType getType() {
return ArgumentType.STRING;
}
@override
String toString() {
return "StringArgument{ ${name}=${value} }";
}
}