Skip to content

Commit ce505ed

Browse files
committed
Updated examples.
1 parent 1cd9bc1 commit ce505ed

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed

example/bin/enum_example.dart

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import 'package:ansi_modifier/ansi_modifier.dart';
2+
import 'package:build_test/build_test.dart' show resolveSource;
3+
import 'package:generic_reader/generic_reader.dart';
4+
5+
/// To run this program navigate to the root folder
6+
/// in your local copy the package `generic_reader` and
7+
/// use the command:
8+
///
9+
/// # dart example/bin/enum_example.dart
10+
11+
/// Demonstrates how to use [Reader] to read an enum.
12+
enum Order { asc, desc }
13+
14+
Future<void> main() async {
15+
print('\nReading library: example\n');
16+
17+
final library = await resolveSource(
18+
r'''
19+
library example;
20+
21+
enum Order { asc, desc }
22+
23+
class A {
24+
const A();
25+
final Order order = Order.asc;
26+
}
27+
''',
28+
(resolver) => resolver.findLibraryByName('example'),
29+
readAllSourcesFromFilesystem: false,
30+
);
31+
32+
final lib = library!;
33+
Reader.addDecoder(const EnumDecoder<Order>(Order.values));
34+
35+
final enumObj = lib.classes[0].fields[0].computeConstantValue();
36+
final enum0 = enumObj?.read<Order>();
37+
38+
print(
39+
'\n mroe Reading an enum of type ${'Order'.style(Ansi.green)}: '
40+
'$enum0\n',
41+
);
42+
}

example/bin/list_example.dart

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import 'package:ansi_modifier/ansi_modifier.dart';
2+
import 'package:build_test/build_test.dart' show resolveSource;
3+
import 'package:generic_reader/generic_reader.dart';
4+
5+
/// To run this program navigate to the root folder
6+
/// in your local copy the package `generic_reader` and
7+
/// use the command:
8+
///
9+
/// # dart example/bin/enum_example.dart
10+
11+
/// Demonstrates how to use [Reader] to read a nested list.
12+
Future<void> main() async {
13+
print('\nReading library: example\n');
14+
15+
final lib = await resolveSource(
16+
r'''
17+
library example;
18+
19+
class A {
20+
const A();
21+
final nestedList = List<List<String>> [['a'], ['b']];
22+
}
23+
''',
24+
(resolver) => resolver.findLibraryByName('example'),
25+
readAllSourcesFromFilesystem: false,
26+
);
27+
28+
if (lib == null) return;
29+
30+
final listOfString = 'List<String>'.style(Ansi.green);
31+
final listOfListOfString = 'List<List<String>>'.style(Ansi.green);
32+
33+
print('\nAdding decoder for $listOfString and $listOfListOfString\n');
34+
Reader.addDecoder(const ListDecoder<String>());
35+
Reader.addDecoder(const ListDecoder<List<String>>());
36+
37+
print(Reader.info);
38+
39+
final listObj = lib.classes[0].fields[0].computeConstantValue();
40+
final list1 = listObj?.read<List<List<String>>>();
41+
final list2 = listObj?.read();
42+
final list3 = listObj?.readList<List<String>>();
43+
44+
print('\nlistObj.read<$listOfListOfString>: $list1');
45+
46+
print('\nlistObj.read(): $list2');
47+
48+
print('\nlistObj.readList<$listOfString>(): $list3\n');
49+
}

0 commit comments

Comments
 (0)