Ferrite-backup/Ferrite/Protocols/Plugin.swift
kingbri ecdd0199f6 Tree: Cleanup access levels
Public should not be used in an app since it declares public to
additional modules. However, an app is one module. Some structs/
classes need to be left public to conform to CoreData's generation.

Signed-off-by: kingbri <bdashore3@proton.me>
2024-06-16 15:00:35 -05:00

38 lines
890 B
Swift

//
// Plugin.swift
// Ferrite
//
// Created by Brian Dashore on 1/25/23.
//
import CoreData
import Foundation
protocol Plugin: ObservableObject, NSManagedObject {
var id: UUID { get set }
var listId: UUID? { get set }
var name: String { get set }
var version: Int16 { get set }
var author: String { get set }
var about: String? { get set }
var website: String? { get set }
var enabled: Bool { get set }
var tags: NSOrderedSet? { get set }
func getTags() -> [PluginTagJson]
}
extension Plugin {
var tagArray: [PluginTag] {
tags?.array as? [PluginTag] ?? []
}
}
protocol PluginJson: Hashable {
var name: String { get }
var version: Int16 { get }
var author: String? { get }
var listId: UUID? { get }
var listName: String? { get }
var tags: [PluginTagJson]? { get }
func getTags() -> [PluginTagJson]
}