field_ios

In-the-field app for Radroots on iOS
git clone https://radroots.dev/git/field_ios.git
Log | Files | Refs | README | LICENSE

TeraPreparedMediaHandle.swift (1061B)


      1 import TeraKitBindings
      2 
      3 /// Admission is synchronous while the coordinator still owns the original file.
      4 /// Async closures retain this immutable Rust owner even after native close.
      5 struct TeraPreparedMediaHandle: Sendable, Equatable {
      6   let media: TeraPreparedMedia
      7   private let file: FfiMediaFile
      8 
      9   init(media: TeraPreparedMedia, fileDescriptor: UInt64) throws {
     10     self.media = media
     11     file = try FfiMediaFile(fileDescriptor: fileDescriptor, byteSize: media.byteSize)
     12   }
     13 
     14   static func == (lhs: Self, rhs: Self) -> Bool {
     15     // This is transient owner identity, never a persistent media/request key.
     16     lhs.media == rhs.media && lhs.file === rhs.file
     17   }
     18 
     19   var generatedValue: FfiPreparedMediaInput {
     20     FfiPreparedMediaInput(
     21       schemaVersion: 2,
     22       opaqueReference: media.opaqueReference,
     23       file: file,
     24       sha256: media.sha256,
     25       mediaType: media.mediaType,
     26       byteSize: media.byteSize,
     27       width: media.width,
     28       height: media.height,
     29       alt: media.alt,
     30       preparedAtUnixS: media.preparedAtUnixSeconds
     31     )
     32   }
     33 }