From a1ae02e7516e40157d21befb20686e4cb4f39adb Mon Sep 17 00:00:00 2001 From: MahdiBM Date: Wed, 10 Jul 2024 22:25:51 +0330 Subject: [PATCH] fixes --- Package.resolved | 2 +- Sources/EnumeratorMacro/Enumerator.swift | 108 +++++++---------------- 2 files changed, 32 insertions(+), 78 deletions(-) diff --git a/Package.resolved b/Package.resolved index d5acc32..a6e03d7 100644 --- a/Package.resolved +++ b/Package.resolved @@ -7,7 +7,7 @@ "location" : "https://github.com/mahdibm/swift-mustache", "state" : { "branch" : "mmbm-swift-6", - "revision" : "72f3279b228908c786d80289e7260439163654f2" + "revision" : "b3cd0bca48cd1883e52a1ed6b79dfccd64ff5952" } }, { diff --git a/Sources/EnumeratorMacro/Enumerator.swift b/Sources/EnumeratorMacro/Enumerator.swift index a770e8c..1e0fd5c 100644 --- a/Sources/EnumeratorMacro/Enumerator.swift +++ b/Sources/EnumeratorMacro/Enumerator.swift @@ -2,97 +2,51 @@ import SwiftSyntaxMacros @attached(member, names: arbitrary) -public macro Enumerator(_ templates: String...) = #externalMacro( +public macro Enumerator(_ templates: StaticString...) = #externalMacro( module: "EnumeratorMacroImpl", type: "EnumeratorMacroType" ) -//@attached(member, names: arbitrary) -//macro CreateSubtype( -// _ template: String = """ -// enum Subtype: String { -// {{#cases}} -// case {{name}} -// {{/cases}} -// } -// """ -//) = #externalMacro( -// module: "EnumeratorMacroImpl", -// type: "EnumeratorMacroType" -//) -// -//@CreateSubtype() -//enum TestEnum2 { -// case a(value: String) -// case b -// case f -// case testCase(testValue: String) -// -// func dso() { -// let a = Subtype.a -// } -//} -// -//@CreateSubtype() -//enum TestEnumd2 { -// case a(value: String) -// case b -// case f -// case testCase(testValue: String) -//} +@attached(member, names: arbitrary) +macro CreateSubtype( + _ templates: String = """ + enum Subtype: String { + {{#cases}} + case {{name}} + {{/cases}} + } + """ +) = #externalMacro( + module: "EnumeratorMacroImpl", + type: "EnumeratorMacroType" +) @Enumerator(""" enum Subtype: String { -{{#cases}} -case {{name}} -{{/cases}} -} -""", -""" -var subtype: Subtype { - switch self { - {{#cases}} - case .{{name}}: - return .{{name}} - {{/cases}} - } -} -""", -""" -var parameterNames: [String] { - switch self { {{#cases}} - case .{{name}}: - return [ -{{^parameters}} -"empty" -{{/parameters}} -{{#parameters}} -"{{snakeCased(name)}}" -{{/parameters}} - ] + case {{name}} {{/cases}} - } -} -""", -""" -{{#cases}} -var is{{capitalized(name)}}: Bool { - switch self { - case .{{name}}: - return true - default: - return false - } } -{{/cases}} """) -enum TestEnum { +enum TestEnum2 { case a(value: String) case b + case f case testCase(testValue: String) - func isTheSameCase(as other: Self) -> Bool { - self.subtype == other.subtype + func dso() { + let a = Subtype.a } } + +@CreateSubtype() +enum TestEnumd2 { + case a(value: String) + case b + case f + case testCase(testValue: String) + +// func dso() { +// let a = Subtype.a +// } +}