Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save JohnSundell/dc6dcd2233328771f4e2efbe34d93a01 to your computer and use it in GitHub Desktop.
Save JohnSundell/dc6dcd2233328771f4e2efbe34d93a01 to your computer and use it in GitHub Desktop.
Code sample #4 from my Medium post "Namespacing Swift code with nested types"
struct Post {
let id: Int
let author: User
let title: String
let text: String
// MARK: - TextFormatter
class TextFormatter {
private let options: Set<Option>
init(options: Set<Option>) {
self.options = options
}
func formatTitle(for post: Post) -> String {
return post.title.formatted(withOptions: options)
}
func formatText(for post: Post) -> String {
return post.text.formatted(withOptions: options)
}
// MARK: - Option
enum Option {
case highlightNames
case highlightLinks
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment