Skip to content

Commit 4d1f021

Browse files
committed
Expose generated Resolvable types for addons
1 parent 132c5c9 commit 4d1f021

23 files changed

+148
-139
lines changed

Sources/ASTDecodableImplementation/Decoders/InitializerClausesDecoder.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ struct InitializerClausesDecoder<TypeSyntaxType: TypeSyntaxProtocol> {
3434
let errorReference = DeclReferenceExprSyntax(baseName: errorName)
3535

3636
return StructDeclSyntax(
37+
attributes: [.attribute(AttributeSyntax(attributeName: IdentifierTypeSyntax(name: .identifier("MainActor"))))],
3738
name: name,
3839
inheritanceClause: InheritanceClauseSyntax(inheritedTypes: [
3940
// @preconcurrency Swift.Decodable

Sources/LiveViewNative/Protocols/ContentBuilder.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -680,6 +680,7 @@ public extension ContentBuilder {
680680
/// Modifiers must be decoded from the ``ContentBuilder/decodeModifier(_:from:registry:)``.
681681
///
682682
/// - Note: Keys are automatically converted from `camelCase` to `snake_case` in the decoder.
683+
@MainActor
683684
public protocol ContentModifier<Builder>: Decodable {
684685
associatedtype Builder: ContentBuilder
685686
func apply<R: RootRegistry>(
@@ -689,7 +690,7 @@ public protocol ContentModifier<Builder>: Decodable {
689690
) -> Builder.Content
690691
}
691692

692-
public struct EmptyContentModifier<Builder: ContentBuilder>: ContentModifier {
693+
public struct EmptyContentModifier<Builder: ContentBuilder>: ContentModifier, @preconcurrency Decodable {
693694
public init() {}
694695

695696
public func apply<R>(
@@ -706,3 +707,9 @@ public struct EmptyContentModifier<Builder: ContentBuilder>: ContentModifier {
706707
enum ContentBuilderError: Error {
707708
case unknownTag(String)
708709
}
710+
711+
extension StylesheetResolvable {
712+
public func resolve<Builder: ContentBuilder, R: RootRegistry>(on element: ElementNode, in context: Builder.Context<R>) -> Resolved {
713+
self.resolve(on: element, in: context.context)
714+
}
715+
}

Sources/LiveViewNative/Stylesheets/ResolvableTypes/Accessibility.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ import LiveViewNativeCore
1212

1313
extension Accessibility.AXCustomContent.Importance {
1414
@ASTDecodable("Importance")
15-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
15+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
1616
case __constant(Accessibility.AXCustomContent.Importance)
1717

1818
case `default`
1919
case high
2020
}
2121
}
2222

23-
extension Accessibility.AXCustomContent.Importance.Resolvable {
23+
public extension Accessibility.AXCustomContent.Importance.Resolvable {
2424
@MainActor func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> Accessibility.AXCustomContent.Importance {
2525
switch self {
2626
case let .__constant(value):
@@ -33,22 +33,22 @@ extension Accessibility.AXCustomContent.Importance.Resolvable {
3333
}
3434
}
3535

36-
struct StylesheetResolvableAXChartDescriptorRepresentable: StylesheetResolvable, @preconcurrency Decodable, @preconcurrency AXChartDescriptorRepresentable {
37-
init(from decoder: any Decoder) throws {
36+
public struct StylesheetResolvableAXChartDescriptorRepresentable: StylesheetResolvable, @preconcurrency Decodable, @preconcurrency AXChartDescriptorRepresentable {
37+
public init(from decoder: any Decoder) throws {
3838
fatalError("'AXChartDescriptor' is not supported")
3939
}
4040

41-
func makeChartDescriptor() -> AXChartDescriptor {
41+
public func makeChartDescriptor() -> AXChartDescriptor {
4242
fatalError("'AXChartDescriptor' is not supported")
4343
}
4444

45-
func resolve<R>(on element: ElementNode, in context: LiveContext<R>) -> Self where R : RootRegistry {
45+
public func resolve<R>(on element: ElementNode, in context: LiveContext<R>) -> Self where R : RootRegistry {
4646
return self
4747
}
4848
}
4949

5050
extension StylesheetResolvableAXChartDescriptorRepresentable: @preconcurrency AttributeDecodable {
51-
init(from attribute: Attribute?, on element: ElementNode) throws {
51+
public init(from attribute: Attribute?, on element: ElementNode) throws {
5252
fatalError("'AXChartDescriptor' is not supported")
5353
}
5454
}

Sources/LiveViewNative/Stylesheets/ResolvableTypes/AppKit.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import LiveViewNativeStylesheet
1212

1313
extension NSTextContentType {
1414
@ASTDecodable("NSTextContentType")
15-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable, @preconcurrency AttributeDecodable {
15+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable, @preconcurrency AttributeDecodable {
1616
case username
1717
case password
1818
case oneTimeCode
@@ -59,7 +59,7 @@ extension NSTextContentType {
5959
}
6060
}
6161

62-
extension NSTextContentType.Resolvable {
62+
public extension NSTextContentType.Resolvable {
6363
func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> NSTextContentType {
6464
switch self {
6565
case .username:

Sources/LiveViewNative/Stylesheets/ResolvableTypes/CoreGraphics.swift

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import LiveViewNativeStylesheet
1111
extension CGPoint {
1212
@ASTDecodable("CGPoint")
1313
@MainActor
14-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
14+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
1515
case __constant(CGPoint)
1616
case _init(x: AttributeReference<CGFloat>, y: AttributeReference<CGFloat>)
1717

@@ -23,7 +23,7 @@ extension CGPoint {
2323
}
2424
}
2525

26-
extension CGPoint.Resolvable {
26+
public extension CGPoint.Resolvable {
2727
@MainActor
2828
func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> CGPoint {
2929
switch self {
@@ -38,7 +38,7 @@ extension CGPoint.Resolvable {
3838
extension CGVector {
3939
@ASTDecodable("CGVector")
4040
@MainActor
41-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
41+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
4242
case __constant(CGVector)
4343
case _init(dx: AttributeReference<CGFloat>, dy: AttributeReference<CGFloat>)
4444

@@ -50,7 +50,7 @@ extension CGVector {
5050
}
5151
}
5252

53-
extension CGVector.Resolvable {
53+
public extension CGVector.Resolvable {
5454
@MainActor
5555
func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> CGVector {
5656
switch self {
@@ -64,12 +64,12 @@ extension CGVector.Resolvable {
6464

6565
extension CGSize {
6666
@MainActor
67-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
67+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
6868
case __constant(CGSize)
6969
case _reference(AttributeReference<CGSize>)
7070
case _ast(ASTCGSize)
7171

72-
init(from decoder: any Decoder) throws {
72+
public init(from decoder: any Decoder) throws {
7373
var container = try decoder.singleValueContainer()
7474

7575
if let reference = try? container.decode(AttributeReference<CGSize>.self) {
@@ -80,7 +80,7 @@ extension CGSize {
8080
}
8181

8282
@ASTDecodable("CGSize")
83-
enum ASTCGSize: @preconcurrency Decodable {
83+
public enum ASTCGSize: @preconcurrency Decodable {
8484
case _init(width: AttributeReference<CGFloat>, height: AttributeReference<CGFloat>)
8585

8686
init(width: AttributeReference<CGFloat>, height: AttributeReference<CGFloat>) {
@@ -90,7 +90,7 @@ extension CGSize {
9090
}
9191
}
9292

93-
extension CGSize.Resolvable {
93+
public extension CGSize.Resolvable {
9494
@MainActor
9595
func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> CGSize {
9696
switch self {
@@ -107,7 +107,7 @@ extension CGSize.Resolvable {
107107
extension CGRect {
108108
@ASTDecodable("CGRect")
109109
@MainActor
110-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
110+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
111111
case __constant(CGRect)
112112
case _init1(origin: CGPoint.Resolvable, size: CGSize.Resolvable)
113113
case _init2(x: AttributeReference<CGFloat>, y: AttributeReference<CGFloat>, width: AttributeReference<CGFloat>, height: AttributeReference<CGFloat>)
@@ -122,7 +122,7 @@ extension CGRect {
122122
}
123123
}
124124

125-
extension CGRect.Resolvable {
125+
public extension CGRect.Resolvable {
126126
@MainActor
127127
func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> CGRect {
128128
switch self {
@@ -138,12 +138,12 @@ extension CGRect.Resolvable {
138138

139139
extension CGPath {
140140
@ASTDecodable("CGPath")
141-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
141+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
142142
case __constant(CGPath)
143143
}
144144
}
145145

146-
extension CGPath.Resolvable {
146+
public extension CGPath.Resolvable {
147147
@MainActor
148148
func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> CGPath {
149149
switch self {
@@ -155,12 +155,12 @@ extension CGPath.Resolvable {
155155

156156
extension CGMutablePath {
157157
@ASTDecodable("CGMutablePath")
158-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
158+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
159159
case __constant(CGMutablePath)
160160
}
161161
}
162162

163-
extension CGMutablePath.Resolvable {
163+
public extension CGMutablePath.Resolvable {
164164
@MainActor
165165
func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> CGMutablePath {
166166
switch self {
@@ -172,15 +172,15 @@ extension CGMutablePath.Resolvable {
172172

173173
extension CGLineCap {
174174
@ASTDecodable("CGLineCap")
175-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
175+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
176176
case __constant(CGLineCap)
177177
case butt
178178
case round
179179
case square
180180
}
181181
}
182182

183-
extension CGLineCap.Resolvable {
183+
public extension CGLineCap.Resolvable {
184184
@MainActor
185185
func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> CGLineCap {
186186
switch self {
@@ -198,15 +198,15 @@ extension CGLineCap.Resolvable {
198198

199199
extension CGLineJoin {
200200
@ASTDecodable("CGLineJoin")
201-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
201+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
202202
case __constant(CGLineJoin)
203203
case miter
204204
case round
205205
case bevel
206206
}
207207
}
208208

209-
extension CGLineJoin.Resolvable {
209+
public extension CGLineJoin.Resolvable {
210210
@MainActor
211211
func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> CGLineJoin {
212212
switch self {
@@ -224,12 +224,12 @@ extension CGLineJoin.Resolvable {
224224

225225
extension CGAffineTransform {
226226
@ASTDecodable("CGAffineTransform")
227-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
227+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
228228
case __constant(CGAffineTransform)
229229
}
230230
}
231231

232-
extension CGAffineTransform.Resolvable {
232+
public extension CGAffineTransform.Resolvable {
233233
@MainActor
234234
func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> CGAffineTransform {
235235
switch self {
@@ -241,12 +241,12 @@ extension CGAffineTransform.Resolvable {
241241

242242
extension CGImage {
243243
@ASTDecodable("CGImage")
244-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
244+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
245245
case __constant(CGImage)
246246
}
247247
}
248248

249-
extension CGImage.Resolvable {
249+
public extension CGImage.Resolvable {
250250
@MainActor
251251
func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> CGImage {
252252
switch self {
@@ -258,12 +258,12 @@ extension CGImage.Resolvable {
258258

259259
extension CGColor {
260260
@ASTDecodable("CGColor")
261-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
261+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
262262
case __constant(CGColor)
263263
}
264264
}
265265

266-
extension CGColor.Resolvable {
266+
public extension CGColor.Resolvable {
267267
@MainActor
268268
func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> CGColor {
269269
switch self {
@@ -274,7 +274,7 @@ extension CGColor.Resolvable {
274274
}
275275

276276
extension CGFloat {
277-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
277+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
278278
case __constant(CGFloat)
279279
case reference(AttributeReference<CGFloat>)
280280

@@ -284,7 +284,7 @@ extension CGFloat {
284284
case pi
285285
}
286286

287-
init(from decoder: any Decoder) throws {
287+
public init(from decoder: any Decoder) throws {
288288
let container = try decoder.singleValueContainer()
289289
if let member = try? container.decode(Member.self) {
290290
switch member {
@@ -298,7 +298,7 @@ extension CGFloat {
298298
}
299299
}
300300

301-
func resolve<R>(on element: ElementNode, in context: LiveContext<R>) -> CGFloat where R : RootRegistry {
301+
public func resolve<R>(on element: ElementNode, in context: LiveContext<R>) -> CGFloat where R : RootRegistry {
302302
switch self {
303303
case let .__constant(constant):
304304
return constant

Sources/LiveViewNative/Stylesheets/ResolvableTypes/CoreText.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ import CoreText
99
import LiveViewNativeStylesheet
1010

1111
extension CoreText.CTFont {
12-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
13-
init(from decoder: any Decoder) throws {
12+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
13+
public init(from decoder: any Decoder) throws {
1414
fatalError("CTFont is not available")
1515
}
1616

1717
@MainActor
18-
func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> CoreText.CTFont {
18+
public func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> CoreText.CTFont {
1919
fatalError("CTFont is not available")
2020
}
2121
}

Sources/LiveViewNative/Stylesheets/ResolvableTypes/DeveloperToolsSupport.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ import LiveViewNativeStylesheet
1111
@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *)
1212
extension ColorResource {
1313
@ASTDecodable("ColorResource")
14-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
14+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
1515
case __constant(ColorResource)
1616
}
1717
}
1818

1919
@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *)
20-
extension ColorResource.Resolvable {
20+
public extension ColorResource.Resolvable {
2121
@MainActor
2222
func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> ColorResource {
2323
switch self {
@@ -30,13 +30,13 @@ extension ColorResource.Resolvable {
3030
@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *)
3131
extension ImageResource {
3232
@ASTDecodable("ImageResource")
33-
enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
33+
public enum Resolvable: StylesheetResolvable, @preconcurrency Decodable {
3434
case __constant(ImageResource)
3535
}
3636
}
3737

3838
@available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, *)
39-
extension ImageResource.Resolvable {
39+
public extension ImageResource.Resolvable {
4040
@MainActor
4141
func resolve<R: RootRegistry>(on element: ElementNode, in context: LiveContext<R>) -> ImageResource {
4242
switch self {

0 commit comments

Comments
 (0)