Skip to content

Commit 0b4516e

Browse files
committed
perf: use initializer instead of late initialization and polymorph getters
this will remove late initialization checks from runtime and unnecessary getter overloads, which will also make classes more friendly to extension
1 parent 73d0531 commit 0b4516e

File tree

3 files changed

+22
-40
lines changed

3 files changed

+22
-40
lines changed

packages/talker/lib/src/models/talker_data.dart

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,13 @@ class TalkerData {
1414
DateTime? time,
1515
this.pen,
1616
this.key,
17-
}) {
18-
_time = time ?? DateTime.now();
19-
}
20-
21-
late DateTime _time;
17+
}) : time = time ?? DateTime.now();
2218

2319
/// {@template talker_data_message}
2420
/// [String] [message] - message describes what happened
2521
/// {@endtemplate}
2622
final String? message;
2723

28-
final String? key;
29-
3024
/// {@template talker_data_loglevel}
3125
/// [LogLevel] [logLevel] - to control logging output
3226
/// {@endtemplate}
@@ -42,24 +36,26 @@ class TalkerData {
4236
/// {@endtemplate}
4337
final Error? error;
4438

45-
/// {@template talker_data_title}
46-
/// Title of Talker log
47-
/// {@endtemplate}
48-
String? title;
49-
5039
/// {@template talker_data_stackTrace}
5140
/// StackTrace?] [stackTrace] - stackTrace if [exception] or [error] happened
5241
/// {@endtemplate}
5342
final StackTrace? stackTrace;
5443

44+
/// {@template talker_data_title}
45+
/// Title of Talker log
46+
/// {@endtemplate}
47+
String? title;
48+
5549
/// {@template talker_data_time}
5650
/// Internal time when the log occurred
5751
/// {@endtemplate}
58-
DateTime get time => _time;
52+
final DateTime time;
5953

6054
/// [AnsiPen?] [pen] - sets your own log color for console
6155
AnsiPen? pen;
6256

57+
final String? key;
58+
6359
/// {@template talker_data_generateTextMessage}
6460
/// Internal method that generates
6561
/// a complete message about the event

packages/talker/lib/src/models/talker_error.dart

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,12 @@ class TalkerError extends TalkerData {
1010
String? key,
1111
super.title,
1212
LogLevel? logLevel,
13-
}) : super(message, error: error) {
14-
_key = key ?? TalkerKey.error;
15-
_logLevel = logLevel ?? LogLevel.error;
16-
}
17-
18-
late String _key;
19-
late LogLevel _logLevel;
20-
21-
@override
22-
String get key => _key;
23-
24-
@override
25-
LogLevel? get logLevel => _logLevel;
13+
}) : super(
14+
message,
15+
logLevel: logLevel ?? LogLevel.error,
16+
error: error,
17+
key: key ?? TalkerKey.error,
18+
);
2619

2720
/// {@macro talker_data_generateTextMessage}
2821
@override

packages/talker/lib/src/models/talker_exception.dart

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'package:talker/talker.dart';
22

33
/// Base implementation of [TalkerData]
4-
/// to handle ONLY [Exceptions]s
4+
/// to handle ONLY [Exception]s
55
class TalkerException extends TalkerData {
66
TalkerException(
77
Exception exception, {
@@ -10,19 +10,12 @@ class TalkerException extends TalkerData {
1010
String? key,
1111
super.title,
1212
LogLevel? logLevel,
13-
}) : super(message, exception: exception) {
14-
_key = key ?? TalkerKey.exception;
15-
_logLevel = logLevel ?? LogLevel.error;
16-
}
17-
18-
late String _key;
19-
late LogLevel _logLevel;
20-
21-
@override
22-
String get key => _key;
23-
24-
@override
25-
LogLevel? get logLevel => _logLevel;
13+
}) : super(
14+
message,
15+
logLevel: logLevel ?? LogLevel.error,
16+
exception: exception,
17+
key: key ?? TalkerKey.exception,
18+
);
2619

2720
/// {@macro talker_data_generateTextMessage}
2821
@override

0 commit comments

Comments
 (0)