maxep 5 роки тому
батько
коміт
80f4885371

+ 0 - 4
Sources/KeePass/Database.swift

@@ -19,11 +19,7 @@
 import Foundation
 
 public protocol Database {
-
     associatedtype Root: Group
 
-    typealias Entry = Root.Entries.Element
-
     var root: Root { get }
-    
 }

+ 0 - 9
Sources/KeePass/Field.swift

@@ -24,12 +24,3 @@ public struct Field {
     public var value: String?
     public var isProtected: Bool
 }
-
-public struct Times {
-    public let creationDate: Date
-    public var lastModifiedDate: Date
-    public var lastAccessDate: Date
-    public var expirationDate: Date?
-}
-
-

+ 2 - 2
Sources/KeePass/KDBX.swift

@@ -28,7 +28,7 @@ extension KDBX.File: Database {
 }
 
 extension Element {
-    private var this: XML.Element { self as XML.Element }
+    private var this: XML.Element { self }
 }
 
 extension XML.Element {
@@ -42,7 +42,7 @@ extension XML.Element {
 extension Field {
 
     init?(_ element: XML.Element) {
-        guard let key = element.Key.value else { return nil}
+        guard let key = element.Key.value else { return nil }
         name = key
 
         value = element.Value.value

+ 4 - 4
Sources/KeePass/KeePass.swift

@@ -31,7 +31,7 @@ public enum FileFormat: UInt32, Streamable {
 
 public class KeePass {
 
-    public static func open(contentOf url: URL, compositeKey: CompositeKey) throws -> AnyDatabase {
+    public static func open(contentOf url: URL, compositeKey: CompositeKey) throws -> some Database {
 
         let bytes = try Bytes(contentsOf: url)
         let stream = Input(bytes: bytes)
@@ -40,7 +40,7 @@ public class KeePass {
             throw KeePassError.invalidFileFormat
         }
 
-        let format = try stream.read() as FileFormat
+        let format: FileFormat = try stream.read()
 
         switch format {
         case .kdb:
@@ -50,8 +50,8 @@ public class KeePass {
         }
     }
 
-    public static func open(contentOf xml: URL) throws -> AnyDatabase {
-        return AnyDatabase ( try KDBX.File(xml: xml) )
+    public static func open(contentOf xml: URL) throws -> some Database {
+        try KDBX.File(xml: xml)
     }
 
 }

+ 41 - 41
Sources/KeePass/TypeErasure.swift

@@ -19,68 +19,68 @@
 import Foundation
 
 @inline(never)
-internal func _abstract(file: StaticString = #file, line: UInt = #line) -> Never {
+func _abstract(file: StaticString = #file, line: UInt = #line) -> Never {
     fatalError("Method must be overridden", file: file, line: line)
 }
 
 // MARK: - Database
 
-internal class _AnyDatabaseBoxBase: Database {
-    internal var root: AnyGroup { _abstract() }
+class _AnyDatabaseBoxBase: Database {
+    var root: AnyGroup { _abstract() }
 }
 
-internal final class _AnyDatabaseBox<Base>: _AnyDatabaseBoxBase where Base: Database {
-    internal override var root: AnyGroup { AnyGroup( _base.root ) }
-    internal var _base: Base
-    internal init(_ base: Base) { _base = base }
+final class _AnyDatabaseBox<Base>: _AnyDatabaseBoxBase where Base: Database {
+    override var root: AnyGroup { AnyGroup( _base.root ) }
+    var _base: Base
+    init(_ base: Base) { _base = base }
 }
 
-public class AnyDatabase: Database {
-    public var root: AnyGroup { _box.root }
-    internal let _box: _AnyDatabaseBoxBase
-    internal init<T>(_ base: T) where T: Database {
+class AnyDatabase: Database {
+    var root: AnyGroup { _box.root }
+    let _box: _AnyDatabaseBoxBase
+    init<T>(_ base: T) where T: Database {
         _box = _AnyDatabaseBox(base)
     }
 }
 
 // MARK: - Group
 
-internal class _AnyGroupBoxBase: Group {
+class _AnyGroupBoxBase: Group {
 
-    internal var title: String {
+    var title: String {
         get { _abstract() }
         set { _abstract() }
     }
 
-    internal var icon: Int {
+    var icon: Int {
         get { _abstract() }
         set { _abstract() }
     }
 
-    internal var entries: AnyRandomAccessCollection<AnyEntry> { _abstract() }
-    internal var groups: AnyRandomAccessCollection<AnyGroup> { _abstract() }
+    var entries: AnyRandomAccessCollection<AnyEntry> { _abstract() }
+    var groups: AnyRandomAccessCollection<AnyGroup> { _abstract() }
 }
 
-internal final class _AnyGroupBox<Base>: _AnyGroupBoxBase where Base: Group {
+final class _AnyGroupBox<Base>: _AnyGroupBoxBase where Base: Group {
 
-    internal override var title: String {
+    override var title: String {
         get { _base.title }
         set { _base.title = newValue }
     }
 
-    internal override var icon: Int {
+    override var icon: Int {
         get { _base.icon }
         set { _base.icon = newValue }
     }
 
-    internal override var entries: AnyRandomAccessCollection<AnyEntry> { AnyRandomAccessCollection<AnyEntry>(_base.entries.map { AnyEntry($0) }) }
-    internal override var groups: AnyRandomAccessCollection<AnyGroup> { AnyRandomAccessCollection<AnyGroup>(_base.groups.map { AnyGroup($0) }) }
+    override var entries: AnyRandomAccessCollection<AnyEntry> { AnyRandomAccessCollection<AnyEntry>(_base.entries.map { AnyEntry($0) }) }
+    override var groups: AnyRandomAccessCollection<AnyGroup> { AnyRandomAccessCollection<AnyGroup>(_base.groups.map { AnyGroup($0) }) }
 
-    internal var _base: Base
-    internal init(_ base: Base) { _base = base }
+    var _base: Base
+    init(_ base: Base) { _base = base }
 }
 
-public class AnyGroup: Group {
+class AnyGroup: Group {
 
     public var title: String {
         get { _box.title }
@@ -92,37 +92,37 @@ public class AnyGroup: Group {
         set { _box.icon = newValue }
     }
 
-    public var entries: AnyRandomAccessCollection<AnyEntry> { _box.entries }
-    public var groups: AnyRandomAccessCollection<AnyGroup> { _box.groups }
+    var entries: AnyRandomAccessCollection<AnyEntry> { _box.entries }
+    var groups: AnyRandomAccessCollection<AnyGroup> { _box.groups }
 
-    internal let _box: _AnyGroupBoxBase
-    internal init<T>(_ base: T) where T: Group {
+    let _box: _AnyGroupBoxBase
+    init<T>(_ base: T) where T: Group {
         _box = _AnyGroupBox(base)
     }
 }
 
 // MARK: - Entry
 
-internal class _AnyEntryBoxBase: Entry {
-    internal var times: Timestamp { _abstract() }
-    internal var fields: AnyRandomAccessCollection<Field> { _abstract() }
-    internal func set(_ field: Field) { _abstract() }
+class _AnyEntryBoxBase: Entry {
+    var times: Timestamp { _abstract() }
+    var fields: AnyRandomAccessCollection<Field> { _abstract() }
+    func set(_ field: Field) { _abstract() }
 }
 
-internal final class _AnyEntryBox<Base>: _AnyEntryBoxBase where Base: Entry {
-    internal override var times: Timestamp { _base.times }
-    internal override var fields: AnyRandomAccessCollection<Field> { AnyRandomAccessCollection<Field>(_base.fields) }
-    internal override func set(_ field: Field) { _base.set(field) }
-    internal var _base: Base
-    internal init(_ base: Base) { _base = base }
+final class _AnyEntryBox<Base>: _AnyEntryBoxBase where Base: Entry {
+    override var times: Timestamp { _base.times }
+    override var fields: AnyRandomAccessCollection<Field> { AnyRandomAccessCollection<Field>(_base.fields) }
+    override func set(_ field: Field) { _base.set(field) }
+    var _base: Base
+    init(_ base: Base) { _base = base }
 }
 
-public final class AnyEntry: Entry {
+final class AnyEntry: Entry {
     public var times: Timestamp { _box.times }
     public var fields: AnyRandomAccessCollection<Field> { _box.fields }
     public func set(_ field: Field) { _box.set(field) }
-    internal let _box: _AnyEntryBoxBase
-    internal init<T>(_ base: T) where T: Entry {
+    let _box: _AnyEntryBoxBase
+    init<T>(_ base: T) where T: Entry {
         _box = _AnyEntryBox(base)
     }
 }