Skip to content

Commit

Permalink
refactor: Format
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmah309 committed Nov 25, 2024
1 parent df6eb16 commit 37c9047
Show file tree
Hide file tree
Showing 8 changed files with 49 additions and 21 deletions.
2 changes: 1 addition & 1 deletion example/working_with_anyhow_errors.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ void main() {
}
Result<int> x = bail("this is an error message").context(1).into();
var rootInner = x.unwrapErr().rootCause().downcastUnchecked();
switch(rootInner) {
switch (rootInner) {
case String():
print("String found");
default:
Expand Down
10 changes: 9 additions & 1 deletion lib/anyhow.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,12 @@ export 'src/error.dart';
export 'src/guard.dart';

export 'package:rust/src/result/result.dart'
hide Result, Ok, Err, FutureResult, guard, guardAsync, guardAsyncResult, guardResult;
hide
Result,
Ok,
Err,
FutureResult,
guard,
guardAsync,
guardAsyncResult,
guardResult;
10 changes: 9 additions & 1 deletion lib/rust.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,12 @@ library rust;

export 'anyhow.dart';
export 'package:rust/rust.dart'
hide Result, Ok, Err, FutureResult, guard, guardAsync, guardAsyncResult, guardResult;
hide
Result,
Ok,
Err,
FutureResult,
guard,
guardAsync,
guardAsyncResult,
guardResult;
25 changes: 16 additions & 9 deletions lib/src/error.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ class Error implements Exception {
static ErrorDisplayOrder displayOrder = ErrorDisplayOrder.rootLast;

/// How to display [StackTrace]s. Requires [hasStackTrace] = true
static StackTraceDisplayFormat stackTraceDisplayFormat = StackTraceDisplayFormat.one;
static StackTraceDisplayFormat stackTraceDisplayFormat =
StackTraceDisplayFormat.one;

/// Modifies the stacktrace during display. Useful for adjusting number of frames to include during
/// display/logging. Stacktraces that are captured internally through [bail], [anyhow],
Expand All @@ -38,7 +39,8 @@ class Error implements Exception {
}

/// Constructor used internally when it is known a [StackTrace] is needed, so it is eagerly created.
Error._withStackTrace(this._inner, this._stackTrace, {Error? parent}) : _parent = parent;
Error._withStackTrace(this._inner, this._stackTrace, {Error? parent})
: _parent = parent;

/// Returns true if [E] is the type held by this error object.
bool isType<E extends Object>() {
Expand Down Expand Up @@ -105,7 +107,8 @@ class Error implements Exception {
return stringBuf.toString();
}

void _writeErrorAndContext(StringBuffer stringBuf, String restTitle, Iterator<Error> iter) {
void _writeErrorAndContext(
StringBuffer stringBuf, String restTitle, Iterator<Error> iter) {
iter.moveNext();
stringBuf.write("${iter.current._inner}\n");
if (iter.moveNext()) {
Expand All @@ -119,31 +122,35 @@ class Error implements Exception {
}
}

void _writeStackTraces(StringBuffer stringBuf, String restTitle, Iterator<Error> iter) {
void _writeStackTraces(
StringBuffer stringBuf, String restTitle, Iterator<Error> iter) {
if (hasStackTrace) {
switch (stackTraceDisplayFormat) {
case StackTraceDisplayFormat.none:
break;
case StackTraceDisplayFormat.one:
if (iter.moveNext()) {
stringBuf.write("\nStackTrace:\n");
stringBuf.write(stackTraceDisplayModifier(iter.current._stackTrace!));
stringBuf
.write(stackTraceDisplayModifier(iter.current._stackTrace!));
stringBuf.write("\n");
}
case StackTraceDisplayFormat.full:
if (iter.moveNext()) {
stringBuf.write("\nStackTrace:\n");
stringBuf.write(stackTraceDisplayModifier(iter.current._stackTrace!));
stringBuf
.write(stackTraceDisplayModifier(iter.current._stackTrace!));
stringBuf.write("\n");
}
if (iter.moveNext()) {
stringBuf.write("\n");
stringBuf.write("\n$restTitle StackTraces:\n");
stringBuf.write("\t0: ${stackTraceDisplayModifier(iter.current._stackTrace!)}\n");
stringBuf.write(
"\t0: ${stackTraceDisplayModifier(iter.current._stackTrace!)}\n");
int index = 1;
while (iter.moveNext()) {
stringBuf
.write("\t${index}: ${stackTraceDisplayModifier(iter.current._stackTrace!)}\n");
stringBuf.write(
"\t${index}: ${stackTraceDisplayModifier(iter.current._stackTrace!)}\n");
index++;
}
}
Expand Down
15 changes: 10 additions & 5 deletions lib/src/extensions.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ extension AnyhowResultExtension<S> on Result<S> {
case Err(:final err):
assert(context is! Error, _isAlreadyErrorAssertionMessage);
if (Error.hasStackTrace) {
return Err(Error._withStackTrace(context, StackTrace.current, parent: err));
return Err(
Error._withStackTrace(context, StackTrace.current, parent: err));
}
return Err(Error(context, parent: err));
}
Expand All @@ -31,7 +32,8 @@ extension AnyhowResultExtension<S> on Result<S> {
final context = fn();
assert(context is! Error, _isAlreadyErrorAssertionMessage);
if (Error.hasStackTrace) {
return Err(Error._withStackTrace(context, StackTrace.current, parent: err));
return Err(
Error._withStackTrace(context, StackTrace.current, parent: err));
}
return Err(Error(context, parent: err));
}
Expand All @@ -55,7 +57,8 @@ extension AnyhowErrExtension<S> on Err<S> {
Err<S> context(Object context) {
assert(context is! Error, _isAlreadyErrorAssertionMessage);
if (Error.hasStackTrace) {
return Err(Error._withStackTrace(context, StackTrace.current, parent: err));
return Err(
Error._withStackTrace(context, StackTrace.current, parent: err));
}
return Err(Error(context, parent: err));
}
Expand All @@ -66,7 +69,8 @@ extension AnyhowErrExtension<S> on Err<S> {
final context = fn();
assert(context is! Error, _isAlreadyErrorAssertionMessage);
if (Error.hasStackTrace) {
return Err(Error._withStackTrace(context, StackTrace.current, parent: err));
return Err(
Error._withStackTrace(context, StackTrace.current, parent: err));
}
return Err(Error(context, parent: err));
}
Expand Down Expand Up @@ -126,7 +130,8 @@ extension AnyhowIterableResultExtension<S> on Iterable<Result<S>> {
}
}

extension AnyhowFutureIterableResultExtension<S> on Future<Iterable<Result<S>>> {
extension AnyhowFutureIterableResultExtension<S>
on Future<Iterable<Result<S>>> {
FutureResult<List<S>> toResult() {
return then((result) => result.toResult());
}
Expand Down
2 changes: 1 addition & 1 deletion lib/src/guard.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,4 @@ FutureResult<S> guardAsyncResult<S>(Future<Result<S>> Function() func) async {
} catch (e) {
return Err(Error(e));
}
}
}
2 changes: 1 addition & 1 deletion lib/src/result.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ typedef Result<S> = rust.Result<S, Error>;
typedef Ok<S> = rust.Ok<S, Error>;

/// {@macro err}
typedef Err<S> = rust.Err<S, Error>;
typedef Err<S> = rust.Err<S, Error>;
4 changes: 2 additions & 2 deletions test/result_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,8 @@ void main() {
group('andThenError', () {
test('Error', () {
final result = bail(4);
final result2 = result.andThenErr(
(error) => bail(('=' * error.downcast<int>().unwrap())));
final result2 = result
.andThenErr((error) => bail(('=' * error.downcast<int>().unwrap())));

expect(result2.unwrapErr(), Error('===='));
});
Expand Down

0 comments on commit 37c9047

Please sign in to comment.