diff --git a/Sources/domain/CGImageSourceFrameSequence.swift b/Sources/domain/CGImageSourceFrameSequence.swift index 997f81f..08c3a8d 100644 --- a/Sources/domain/CGImageSourceFrameSequence.swift +++ b/Sources/domain/CGImageSourceFrameSequence.swift @@ -8,18 +8,18 @@ import Foundation import CoreImage -struct CGImageSourceFrameSequence: AsyncSequence { - typealias Element = ImageFrame +public struct CGImageSourceFrameSequence: AsyncSequence { + public typealias Element = ImageFrame - let source: CGImageSource - let loop: Bool + public let source: CGImageSource + public let loop: Bool - init(source: CGImageSource, loop: Bool) { + public init(source: CGImageSource, loop: Bool) { self.source = source self.loop = loop } - func makeAsyncIterator() -> CGImageSourceIterator { + public func makeAsyncIterator() -> CGImageSourceIterator { CGImageSourceIterator(source: source, loop: loop) } } diff --git a/Sources/domain/CGImageSourceIterator.swift b/Sources/domain/CGImageSourceIterator.swift index e056b39..a578f92 100644 --- a/Sources/domain/CGImageSourceIterator.swift +++ b/Sources/domain/CGImageSourceIterator.swift @@ -8,21 +8,21 @@ import Foundation import CoreImage -struct CGImageSourceIterator: AsyncIteratorProtocol { +public struct CGImageSourceIterator: AsyncIteratorProtocol { - let loop: Bool - let frameCount: Int - let source: CGImageSource - var currentFrame: Int + public let loop: Bool + public let frameCount: Int + public let source: CGImageSource + public private(set) var currentFrame: Int - init(source: CGImageSource, loop: Bool) { + public init(source: CGImageSource, loop: Bool) { self.source = source self.frameCount = CGImageSourceGetCount(source) self.currentFrame = 0 self.loop = loop } - mutating func next() async throws -> ImageFrame? { + public mutating func next() async throws -> ImageFrame? { if currentFrame >= frameCount { if loop { @@ -42,7 +42,7 @@ struct CGImageSourceIterator: AsyncIteratorProtocol { return frame } - mutating func reset() { + public mutating func reset() { currentFrame = 0 } } diff --git a/Sources/domain/ImageLoader.swift b/Sources/domain/ImageLoader.swift index 9676cba..2cc13b8 100644 --- a/Sources/domain/ImageLoader.swift +++ b/Sources/domain/ImageLoader.swift @@ -19,7 +19,7 @@ public struct ImageLoader { self.fileManager = fileManager } - func load(source: GIFSource, loop: Bool) async throws -> CGImageSourceFrameSequence { + public func load(source: GIFSource, loop: Bool) async throws -> CGImageSourceFrameSequence { let data = try await source.loadData(session: session, cache: cache, fileManager: fileManager) return try data.imageAsyncSequence(loop: loop) }