Skip to content

Add Code.lazy, for custom structures #844

Closed
dart-archive/code_builder
#149
@matanlurey

Description

@matanlurey
+  /// Create a code body that is created lazily.
+  const factory Code.lazy(
+    String Function(CodeVisitor visitor) onVisit,
+  ) = LazyCode._;
+
+/// Represents a [code] block that requires lazy visiting.
+class LazyCode implements Code {
+  final String Function(CodeVisitor visit) code;
+
+  const LazyCode._(this.code);
+
+  @override
+  R accept<R>(CodeVisitor<R> visitor, [R context]) {
+    return new Code(code(visitor)).accept(visitor, context);
+  }
+
+  @override
+  String toString() => '{LazyCode}';
+}
+

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions