Skip to content

Commit ad9ad77

Browse files
actualizar dart
1 parent 596ddc2 commit ad9ad77

File tree

1 file changed

+34
-29
lines changed

1 file changed

+34
-29
lines changed

lib/dynamic/pattern.dart

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,86 @@
1+
12
// root element
2-
abstract class Element {
3+
sealed class Element {
34
String get();
45
}
56

7+
68
// html element
7-
abstract class HtmlElement extends Element {}
9+
sealed class HtmlElement extends Element {
10+
11+
}
812

913
final class Div extends HtmlElement {
10-
@override
1114
String get() {
12-
return '';
15+
return "";
1316
}
1417
}
1518

1619
final class Span extends HtmlElement {
17-
@override
1820
String get() {
19-
return '';
21+
return "";
2022
}
2123
}
2224

2325
final class Paragraph extends HtmlElement {
24-
@override
2526
String get() {
26-
return '';
27+
return "";
2728
}
2829
}
2930

3031
final class Image extends HtmlElement {
31-
@override
3232
String get() {
33-
return '';
33+
return "";
3434
}
3535
}
3636

37+
3738
// internal element
38-
abstract class InternalElement extends Element {}
39+
sealed class InternalElement extends Element {
40+
41+
}
3942

4043
final class Text extends InternalElement {
41-
@override
4244
String get() {
43-
return '';
45+
return "";
4446
}
4547
}
4648

4749
final class HtmlLiteral extends InternalElement {
48-
@override
4950
String get() {
50-
return '';
51+
return "";
5152
}
5253
}
5354

5455
final class Nothing extends InternalElement {
55-
@override
5656
String get() {
57-
return '';
57+
return "";
5858
}
5959
}
6060

61+
6162
// custom element
62-
abstract class CustomElement extends Element {}
63+
sealed class CustomElement extends Element {
64+
65+
}
66+
67+
6368

6469
String getElement(Element element) {
6570
return switch (element) {
6671
HtmlElement html => switch (html) {
67-
Div div => '<div>' + div.get() + '</div>',
68-
Span span => '<span>' + span.get() + '</span>',
69-
Paragraph paragraph => '<p>' + paragraph.get() + '</p>',
70-
Image image => '<img src="' + image.get() + '" />',
71-
_ => throw UnimplementedError(),
72-
},
72+
Div div => '<div>' + div.get() + '</div>',
73+
Span span => '<span>' + span.get() + '</span>',
74+
Paragraph paragraph => '<p>' + paragraph.get() + '</p>',
75+
Image image => '<img src="' + image.get() + '" />',
76+
_ => throw UnimplementedError(),
77+
},
7378
InternalElement internal => switch (internal) {
74-
Text text => text.get(),
75-
HtmlLiteral htmlLiteral => htmlLiteral.get(),
76-
Nothing nothing => nothing.get(),
77-
_ => throw UnimplementedError(),
78-
},
79+
Text text => text.get(),
80+
HtmlLiteral htmlLiteral => htmlLiteral.get(),
81+
Nothing nothing => nothing.get(),
82+
_ => throw UnimplementedError(),
83+
},
7984
CustomElement custom => custom.toString(),
8085
_ => throw UnimplementedError(),
8186
};

0 commit comments

Comments
 (0)