mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
FlatBuffers implementation debugging
This commit is contained in:
parent
b732a6c578
commit
7e2c6da812
@ -101,6 +101,7 @@ private enum DebugControllerEntry: ItemListNodeEntry {
|
||||
case compressedEmojiCache(Bool)
|
||||
case storiesJpegExperiment(Bool)
|
||||
case conferenceDebug(Bool)
|
||||
case checkSerializedData(Bool)
|
||||
case enableQuickReactionSwitch(Bool)
|
||||
case disableReloginTokens(Bool)
|
||||
case liveStreamV2(Bool)
|
||||
@ -133,7 +134,7 @@ private enum DebugControllerEntry: ItemListNodeEntry {
|
||||
return DebugControllerSection.web.rawValue
|
||||
case .keepChatNavigationStack, .skipReadHistory, .dustEffect, .crashOnSlowQueries, .crashOnMemoryPressure:
|
||||
return DebugControllerSection.experiments.rawValue
|
||||
case .clearTips, .resetNotifications, .crash, .fillLocalSavedMessageCache, .resetDatabase, .resetDatabaseAndCache, .resetHoles, .resetTagHoles, .reindexUnread, .resetCacheIndex, .reindexCache, .resetBiometricsData, .optimizeDatabase, .photoPreview, .knockoutWallpaper, .compressedEmojiCache, .storiesJpegExperiment, .conferenceDebug, .enableQuickReactionSwitch, .experimentalCompatibility, .enableDebugDataDisplay, .rippleEffect, .browserExperiment, .localTranscription, .enableReactionOverrides, .restorePurchases, .disableReloginTokens, .liveStreamV2, .experimentalCallMute, .playerV2, .devRequests, .fakeAds, .enableLocalTranslation:
|
||||
case .clearTips, .resetNotifications, .crash, .fillLocalSavedMessageCache, .resetDatabase, .resetDatabaseAndCache, .resetHoles, .resetTagHoles, .reindexUnread, .resetCacheIndex, .reindexCache, .resetBiometricsData, .optimizeDatabase, .photoPreview, .knockoutWallpaper, .compressedEmojiCache, .storiesJpegExperiment, .conferenceDebug, .checkSerializedData, .enableQuickReactionSwitch, .experimentalCompatibility, .enableDebugDataDisplay, .rippleEffect, .browserExperiment, .localTranscription, .enableReactionOverrides, .restorePurchases, .disableReloginTokens, .liveStreamV2, .experimentalCallMute, .playerV2, .devRequests, .fakeAds, .enableLocalTranslation:
|
||||
return DebugControllerSection.experiments.rawValue
|
||||
case .logTranslationRecognition, .resetTranslationStates:
|
||||
return DebugControllerSection.translation.rawValue
|
||||
@ -244,12 +245,14 @@ private enum DebugControllerEntry: ItemListNodeEntry {
|
||||
return 48
|
||||
case .conferenceDebug:
|
||||
return 49
|
||||
case .enableQuickReactionSwitch:
|
||||
case .checkSerializedData:
|
||||
return 50
|
||||
case .liveStreamV2:
|
||||
case .enableQuickReactionSwitch:
|
||||
return 51
|
||||
case .experimentalCallMute:
|
||||
case .liveStreamV2:
|
||||
return 52
|
||||
case .experimentalCallMute:
|
||||
return 53
|
||||
case .playerV2:
|
||||
return 54
|
||||
case .devRequests:
|
||||
@ -1318,6 +1321,16 @@ private enum DebugControllerEntry: ItemListNodeEntry {
|
||||
})
|
||||
}).start()
|
||||
})
|
||||
case let .checkSerializedData(value):
|
||||
return ItemListSwitchItem(presentationData: presentationData, title: "Check Serialized Data", value: value, sectionId: self.section, style: .blocks, updated: { value in
|
||||
let _ = arguments.sharedContext.accountManager.transaction ({ transaction in
|
||||
transaction.updateSharedData(ApplicationSpecificSharedDataKeys.experimentalUISettings, { settings in
|
||||
var settings = settings?.get(ExperimentalUISettings.self) ?? ExperimentalUISettings.defaultSettings
|
||||
settings.checkSerializedData = value
|
||||
return PreferencesEntry(settings)
|
||||
})
|
||||
}).start()
|
||||
})
|
||||
case let .enableQuickReactionSwitch(value):
|
||||
return ItemListSwitchItem(presentationData: presentationData, title: "Enable Quick Reaction", value: value, sectionId: self.section, style: .blocks, updated: { value in
|
||||
let _ = arguments.sharedContext.accountManager.transaction ({ transaction in
|
||||
@ -1540,6 +1553,7 @@ private func debugControllerEntries(sharedContext: SharedAccountContext, present
|
||||
entries.append(.disableReloginTokens(experimentalSettings.disableReloginTokens))
|
||||
|
||||
entries.append(.conferenceDebug(experimentalSettings.conferenceDebug))
|
||||
entries.append(.checkSerializedData(experimentalSettings.checkSerializedData))
|
||||
entries.append(.enableQuickReactionSwitch(!experimentalSettings.disableQuickReaction))
|
||||
entries.append(.liveStreamV2(experimentalSettings.liveStreamV2))
|
||||
entries.append(.experimentalCallMute(experimentalSettings.experimentalCallMute))
|
||||
|
@ -337,13 +337,13 @@ public struct PeerEmojiStatus: Equatable, Codable {
|
||||
switch flatBuffersObject.valueType {
|
||||
case .peeremojistatuscontentemoji:
|
||||
guard let emoji = flatBuffersObject.value(type: TelegramCore_PeerEmojiStatusContentEmoji.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .emoji(fileId: emoji.fileId)
|
||||
|
||||
case .peeremojistatuscontentstargift:
|
||||
guard let starGift = flatBuffersObject.value(type: TelegramCore_PeerEmojiStatusContentStarGift.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .starGift(
|
||||
id: starGift.id,
|
||||
@ -358,7 +358,7 @@ public struct PeerEmojiStatus: Equatable, Codable {
|
||||
)
|
||||
|
||||
case .none_:
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -970,7 +970,7 @@ public func TelegramMediaResource_parse(flatBuffersObject: TelegramCore_Telegram
|
||||
switch flatBuffersObject.valueType {
|
||||
case .telegrammediaresourceCloudfilemediaresource:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_TelegramMediaResource_CloudFileMediaResource.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
return CloudFileMediaResource(
|
||||
datacenterId: Int(value.datacenterId),
|
||||
@ -982,7 +982,7 @@ public func TelegramMediaResource_parse(flatBuffersObject: TelegramCore_Telegram
|
||||
)
|
||||
case .telegrammediaresourceClouddocumentsizemediaresource:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_TelegramMediaResource_CloudDocumentSizeMediaResource.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
return CloudDocumentSizeMediaResource(
|
||||
datacenterId: value.datacenterId,
|
||||
@ -993,7 +993,7 @@ public func TelegramMediaResource_parse(flatBuffersObject: TelegramCore_Telegram
|
||||
)
|
||||
case .telegrammediaresourceCloudphotosizemediaresource:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_TelegramMediaResource_CloudPhotoSizeMediaResource.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
return CloudPhotoSizeMediaResource(
|
||||
datacenterId: value.datacenterId,
|
||||
@ -1005,7 +1005,7 @@ public func TelegramMediaResource_parse(flatBuffersObject: TelegramCore_Telegram
|
||||
)
|
||||
case .telegrammediaresourceCloudpeerphotosizemediaresource:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_TelegramMediaResource_CloudPeerPhotoSizeMediaResource.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
let sizeSpec: CloudPeerPhotoSizeSpec
|
||||
switch value.sizeSpec {
|
||||
@ -1023,7 +1023,7 @@ public func TelegramMediaResource_parse(flatBuffersObject: TelegramCore_Telegram
|
||||
)
|
||||
case .telegrammediaresourceCloudstickerpackthumbnailmediaresource:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_TelegramMediaResource_CloudStickerPackThumbnailMediaResource.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
return CloudStickerPackThumbnailMediaResource(
|
||||
datacenterId: value.datacenterId,
|
||||
@ -1033,7 +1033,7 @@ public func TelegramMediaResource_parse(flatBuffersObject: TelegramCore_Telegram
|
||||
)
|
||||
case .telegrammediaresourceClouddocumentmediaresource:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_TelegramMediaResource_CloudDocumentMediaResource.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
return CloudDocumentMediaResource(
|
||||
datacenterId: Int(value.datacenterId),
|
||||
@ -1045,7 +1045,7 @@ public func TelegramMediaResource_parse(flatBuffersObject: TelegramCore_Telegram
|
||||
)
|
||||
case .telegrammediaresourceLocalfilemediaresource:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_TelegramMediaResource_LocalFileMediaResource.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
return LocalFileMediaResource(
|
||||
fileId: value.fileId,
|
||||
@ -1053,7 +1053,7 @@ public func TelegramMediaResource_parse(flatBuffersObject: TelegramCore_Telegram
|
||||
isSecretRelated: value.isSecretRelated
|
||||
)
|
||||
case .none_:
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -522,139 +522,139 @@ public indirect enum InstantPageBlock: PostboxCoding, Equatable {
|
||||
self = .unsupported
|
||||
case .instantpageblockTitle:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Title.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .title(try RichText(flatBuffersObject: value.text))
|
||||
case .instantpageblockSubtitle:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Subtitle.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .subtitle(try RichText(flatBuffersObject: value.text))
|
||||
case .instantpageblockAuthordate:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_AuthorDate.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .authorDate(author: try RichText(flatBuffersObject: value.author), date: value.date)
|
||||
case .instantpageblockHeader:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Header.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .header(try RichText(flatBuffersObject: value.text))
|
||||
case .instantpageblockSubheader:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Subheader.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .subheader(try RichText(flatBuffersObject: value.text))
|
||||
case .instantpageblockParagraph:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Paragraph.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .paragraph(try RichText(flatBuffersObject: value.text))
|
||||
case .instantpageblockPreformatted:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Preformatted.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .preformatted(try RichText(flatBuffersObject: value.text))
|
||||
case .instantpageblockFooter:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Footer.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .footer(try RichText(flatBuffersObject: value.text))
|
||||
case .instantpageblockDivider:
|
||||
self = .divider
|
||||
case .instantpageblockAnchor:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Anchor.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .anchor(value.name)
|
||||
case .instantpageblockList:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_List.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .list(items: try (0 ..< value.itemsCount).map { try InstantPageListItem(flatBuffersObject: value.items(at: $0)!) }, ordered: value.ordered)
|
||||
case .instantpageblockBlockquote:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_BlockQuote.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .blockQuote(text: try RichText(flatBuffersObject: value.text), caption: try RichText(flatBuffersObject: value.caption))
|
||||
case .instantpageblockPullquote:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_PullQuote.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .pullQuote(text: try RichText(flatBuffersObject: value.text), caption: try RichText(flatBuffersObject: value.caption))
|
||||
case .instantpageblockImage:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Image.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .image(id: MediaId(value.id), caption: try InstantPageCaption(flatBuffersObject: value.caption), url: value.url, webpageId: value.webpageId.flatMap(MediaId.init))
|
||||
case .instantpageblockVideo:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Video.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .video(id: MediaId(value.id), caption: try InstantPageCaption(flatBuffersObject: value.caption), autoplay: value.autoplay, loop: value.loop)
|
||||
case .instantpageblockAudio:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Audio.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .audio(id: MediaId(value.id), caption: try InstantPageCaption(flatBuffersObject: value.caption))
|
||||
case .instantpageblockCover:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Cover.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .cover(try InstantPageBlock(flatBuffersObject: value.block))
|
||||
case .instantpageblockWebembed:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_WebEmbed.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .webEmbed(url: value.url, html: value.html, dimensions: value.dimensions.flatMap(PixelDimensions.init), caption: try InstantPageCaption(flatBuffersObject: value.caption), stretchToWidth: value.stretchToWidth, allowScrolling: value.allowScrolling, coverId: value.coverId.flatMap(MediaId.init))
|
||||
case .instantpageblockPostembed:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_PostEmbed.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .postEmbed(url: value.url, webpageId: value.webpageId.flatMap(MediaId.init), avatarId: value.avatarId.flatMap(MediaId.init), author: value.author, date: value.date, blocks: try (0 ..< value.blocksCount).map { try InstantPageBlock(flatBuffersObject: value.blocks(at: $0)!) }, caption: try InstantPageCaption(flatBuffersObject: value.caption))
|
||||
case .instantpageblockCollage:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Collage.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .collage(items: try (0 ..< value.itemsCount).map { try InstantPageBlock(flatBuffersObject: value.items(at: $0)!) }, caption: try InstantPageCaption(flatBuffersObject: value.caption))
|
||||
case .instantpageblockSlideshow:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Slideshow.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .slideshow(items: try (0 ..< value.itemsCount).map { try InstantPageBlock(flatBuffersObject: value.items(at: $0)!) }, caption: try InstantPageCaption(flatBuffersObject: value.caption))
|
||||
case .instantpageblockChannelbanner:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_ChannelBanner.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
let channel = try value.channel.flatMap { try TelegramChannel(flatBuffersObject: $0) }
|
||||
self = .channelBanner(channel)
|
||||
case .instantpageblockKicker:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Kicker.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .kicker(try RichText(flatBuffersObject: value.text))
|
||||
case .instantpageblockTable:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Table.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .table(title: try RichText(flatBuffersObject: value.title), rows: try (0 ..< value.rowsCount).map { try InstantPageTableRow(flatBuffersObject: value.rows(at: $0)!) }, bordered: value.bordered, striped: value.striped)
|
||||
case .instantpageblockDetails:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Details.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .details(title: try RichText(flatBuffersObject: value.title), blocks: try (0 ..< value.blocksCount).map { try InstantPageBlock(flatBuffersObject: value.blocks(at: $0)!) }, expanded: value.expanded)
|
||||
case .instantpageblockRelatedarticles:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_RelatedArticles.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .relatedArticles(title: try RichText(flatBuffersObject: value.title), articles: try (0 ..< value.articlesCount).map { try InstantPageRelatedArticle(flatBuffersObject: value.articles(at: $0)!) })
|
||||
case .instantpageblockMap:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_InstantPageBlock_Map.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .map(latitude: value.latitude, longitude: value.longitude, zoom: value.zoom, dimensions: PixelDimensions(value.dimensions), caption: try InstantPageCaption(flatBuffersObject: value.caption))
|
||||
case .none_:
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
}
|
||||
|
||||
@ -1023,13 +1023,13 @@ public indirect enum InstantPageListItem: PostboxCoding, Equatable {
|
||||
switch flatBuffersObject.valueType {
|
||||
case .instantpagelistitemText:
|
||||
guard let textValue = flatBuffersObject.value(type: TelegramCore_InstantPageListItem_Text.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .text(try RichText(flatBuffersObject: textValue.text), textValue.number)
|
||||
|
||||
case .instantpagelistitemBlocks:
|
||||
guard let blocksValue = flatBuffersObject.value(type: TelegramCore_InstantPageListItem_Blocks.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
let blocks = try (0 ..< blocksValue.blocksCount).map { i in
|
||||
return try InstantPageBlock(flatBuffersObject: blocksValue.blocks(at: i)!)
|
||||
@ -1038,7 +1038,7 @@ public indirect enum InstantPageListItem: PostboxCoding, Equatable {
|
||||
case .instantpagelistitemUnknown:
|
||||
self = .unknown
|
||||
case .none_:
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -79,7 +79,7 @@ public extension PartialMediaReference {
|
||||
switch flatBuffersObject.valueType {
|
||||
case .partialmediareferenceMessage:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_PartialMediaReference_Message.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
if let message = value.message {
|
||||
self = .message(message: try MessageReference(flatBuffersObject: message))
|
||||
@ -88,7 +88,7 @@ public extension PartialMediaReference {
|
||||
}
|
||||
case .partialmediareferenceWebpage:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_PartialMediaReference_WebPage.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
if let webPage = value.webPage {
|
||||
self = .webPage(webPage: try WebpageReference(flatBuffersObject: webPage))
|
||||
@ -97,7 +97,7 @@ public extension PartialMediaReference {
|
||||
}
|
||||
case .partialmediareferenceStickerpack:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_PartialMediaReference_StickerPack.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .stickerPack(stickerPack: try StickerPackReference(flatBuffersObject: value.stickerPack))
|
||||
case .partialmediareferenceSavedgif:
|
||||
@ -107,7 +107,7 @@ public extension PartialMediaReference {
|
||||
case .partialmediareferenceRecentsticker:
|
||||
self = .recentSticker
|
||||
case .none_:
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -19,16 +19,16 @@ public enum TelegramPeerAccessHash: Hashable {
|
||||
switch flatBuffersObject.valueType {
|
||||
case .telegrampeeraccesshashPersonal:
|
||||
guard let personal = flatBuffersObject.value(type: TelegramCore_TelegramPeerAccessHash_Personal.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .personal(personal.accessHash)
|
||||
case .telegrampeeraccesshashGenericpublic:
|
||||
guard let genericPublic = flatBuffersObject.value(type: TelegramCore_TelegramPeerAccessHash_GenericPublic.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .genericPublic(genericPublic.accessHash)
|
||||
case .none_:
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -80,21 +80,21 @@ public enum PeerReference: PostboxCoding, Hashable, Equatable {
|
||||
switch flatBuffersObject.valueType {
|
||||
case .peerreferenceUser:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_PeerReference_User.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .user(id: value.id, accessHash: value.accessHash)
|
||||
case .peerreferenceGroup:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_PeerReference_Group.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .group(id: value.id)
|
||||
case .peerreferenceChannel:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_PeerReference_Channel.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .channel(id: value.id, accessHash: value.accessHash)
|
||||
case .none_:
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -302,79 +302,79 @@ extension RichText {
|
||||
self = .empty
|
||||
case .richtextPlain:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_RichText_Plain.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .plain(value.text)
|
||||
case .richtextBold:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_RichText_Bold.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .bold(try RichText(flatBuffersObject: value.text))
|
||||
case .richtextItalic:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_RichText_Italic.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .italic(try RichText(flatBuffersObject: value.text))
|
||||
case .richtextUnderline:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_RichText_Underline.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .underline(try RichText(flatBuffersObject: value.text))
|
||||
case .richtextStrikethrough:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_RichText_Strikethrough.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .strikethrough(try RichText(flatBuffersObject: value.text))
|
||||
case .richtextFixed:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_RichText_Fixed.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .fixed(try RichText(flatBuffersObject: value.text))
|
||||
case .richtextUrl:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_RichText_Url.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .url(text: try RichText(flatBuffersObject: value.text), url: value.url, webpageId: value.webpageId.flatMap { MediaId($0) })
|
||||
case .richtextEmail:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_RichText_Email.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .email(text: try RichText(flatBuffersObject: value.text),
|
||||
email: value.email)
|
||||
case .richtextConcat:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_RichText_Concat.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .concat(try (0..<value.textsCount).map { try RichText(flatBuffersObject: value.texts(at: $0)!) })
|
||||
case .richtextSubscript:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_RichText_Subscript.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .subscript(try RichText(flatBuffersObject: value.text))
|
||||
case .richtextSuperscript:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_RichText_Superscript.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .superscript(try RichText(flatBuffersObject: value.text))
|
||||
case .richtextMarked:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_RichText_Marked.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .marked(try RichText(flatBuffersObject: value.text))
|
||||
case .richtextPhone:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_RichText_Phone.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .phone(text: try RichText(flatBuffersObject: value.text),
|
||||
phone: value.phone)
|
||||
case .richtextImage:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_RichText_Image.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .image(id: MediaId(value.id), dimensions: PixelDimensions(value.dimensions))
|
||||
case .richtextAnchor:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_RichText_Anchor.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .anchor(text: try RichText(flatBuffersObject: value.text),
|
||||
name: value.name)
|
||||
|
@ -121,16 +121,16 @@ public enum TelegramChannelInfo: Equatable {
|
||||
switch flatBuffersObject.valueType {
|
||||
case .telegramchannelinfoBroadcast:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_TelegramChannelInfo_Broadcast.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .broadcast(TelegramChannelBroadcastInfo(flags: TelegramChannelBroadcastFlags(rawValue: value.flags)))
|
||||
case .telegramchannelinfoGroup:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_TelegramChannelInfo_Group.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .group(TelegramChannelGroupInfo(flags: TelegramChannelGroupFlags(rawValue: value.flags)))
|
||||
case .none_:
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
}
|
||||
|
||||
@ -599,7 +599,7 @@ public final class TelegramChannel: Peer, Equatable {
|
||||
self.participationStatus = TelegramChannelParticipationStatus(rawValue: flatBuffersObject.participationStatus)
|
||||
|
||||
guard let infoObj = flatBuffersObject.info else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self.info = try TelegramChannelInfo(flatBuffersObject: infoObj)
|
||||
|
||||
|
@ -47,18 +47,18 @@ public enum TelegramGroupRole: Equatable, PostboxCoding {
|
||||
switch flatBuffersObject.valueType {
|
||||
case .telegramgrouproleCreator:
|
||||
guard let creator = flatBuffersObject.value(type: TelegramCore_TelegramGroupRole_Creator.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .creator(rank: creator.rank)
|
||||
case .telegramgrouproleAdmin:
|
||||
guard let admin = flatBuffersObject.value(type: TelegramCore_TelegramGroupRole_Admin.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .admin(try TelegramChatAdminRights(flatBuffersObject: admin.rights), rank: admin.rank)
|
||||
case .telegramgrouproleMember:
|
||||
self = .member
|
||||
case .none_:
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
}
|
||||
|
||||
@ -250,7 +250,7 @@ public final class TelegramGroup: Peer, Equatable {
|
||||
self.participantCount = Int(flatBuffersObject.participantCount)
|
||||
|
||||
guard let role = flatBuffersObject.role else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self.role = try TelegramGroupRole(flatBuffersObject: role)
|
||||
|
||||
|
@ -126,19 +126,19 @@ public enum StickerPackReference: PostboxCoding, Hashable, Equatable, Codable {
|
||||
switch flatBuffersObject.valueType {
|
||||
case .stickerpackreferenceId:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_StickerPackReference_Id.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .id(id: value.id, accessHash: value.accessHash)
|
||||
case .stickerpackreferenceName:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_StickerPackReference_Name.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .name(value.name)
|
||||
case .stickerpackreferenceAnimatedemoji:
|
||||
self = .animatedEmoji
|
||||
case .stickerpackreferenceDice:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_StickerPackReference_Dice.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .dice(value.emoji)
|
||||
case .stickerpackreferenceAnimatedemojianimations:
|
||||
@ -154,7 +154,7 @@ public enum StickerPackReference: PostboxCoding, Hashable, Equatable, Codable {
|
||||
case .stickerpackreferenceIconchannelstatusemoji:
|
||||
self = .iconChannelStatusEmoji
|
||||
case .none_:
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
}
|
||||
|
||||
@ -478,29 +478,29 @@ public enum TelegramMediaFileAttribute: PostboxCoding, Equatable {
|
||||
switch flatBuffersObject.valueType {
|
||||
case .telegrammediafileattributeFilename:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_TelegramMediaFileAttribute_FileName.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .FileName(fileName: value.fileName)
|
||||
case .telegrammediafileattributeSticker:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_TelegramMediaFileAttribute_Sticker.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .Sticker(displayText: value.displayText, packReference: try value.packReference.flatMap({ try StickerPackReference(flatBuffersObject: $0) }), maskData: value.maskData.flatMap({ StickerMaskCoords(flatBuffersObject: $0) }))
|
||||
case .telegrammediafileattributeImagesize:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_TelegramMediaFileAttribute_ImageSize.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .ImageSize(size: PixelDimensions(width: value.width, height: value.height))
|
||||
case .telegrammediafileattributeAnimated:
|
||||
self = .Animated
|
||||
case .telegrammediafileattributeVideo:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_TelegramMediaFileAttribute_Video.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .Video(duration: Double(value.duration), size: PixelDimensions(width: value.width, height: value.height), flags: TelegramMediaVideoFlags(rawValue: value.flags), preloadSize: value.preloadSize == 0 ? nil : value.preloadSize, coverTime: value.coverTime == 0.0 ? nil : Double(value.coverTime), videoCodec: value.videoCodec)
|
||||
case .telegrammediafileattributeAudio:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_TelegramMediaFileAttribute_Audio.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .Audio(isVoice: value.isVoice, duration: Int(value.duration), title: value.title, performer: value.performer, waveform: value.waveform.isEmpty ? nil : Data(value.waveform))
|
||||
case .telegrammediafileattributeHaslinkedstickers:
|
||||
@ -512,10 +512,10 @@ public enum TelegramMediaFileAttribute: PostboxCoding, Equatable {
|
||||
case .telegrammediafileattributeNopremium:
|
||||
self = .NoPremium
|
||||
case .none_:
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
case .telegrammediafileattributeCustomemoji:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_TelegramMediaFileAttribute_CustomEmoji.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self = .CustomEmoji(isPremium: value.isPremium, isSingleColor: value.isSingleColor, alt: value.alt, packReference: try value.packReference.flatMap({ try StickerPackReference(flatBuffersObject: $0) }))
|
||||
}
|
||||
|
@ -219,16 +219,16 @@ public final class TelegramMediaImage: Media, Equatable, Codable {
|
||||
switch flatBuffersObject.contentType {
|
||||
case .emojimarkupContentEmoji:
|
||||
guard let value = flatBuffersObject.content(type: TelegramCore_EmojiMarkup_Content_Emoji.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self.content = .emoji(fileId: value.fileId)
|
||||
case .emojimarkupContentSticker:
|
||||
guard let value = flatBuffersObject.content(type: TelegramCore_EmojiMarkup_Content_Sticker.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
self.content = .sticker(packReference: try StickerPackReference(flatBuffersObject: value.packReference), fileId: value.fileId)
|
||||
case .none_:
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
|
||||
self.backgroundColors = flatBuffersObject.backgroundColors
|
||||
|
@ -3,24 +3,36 @@ import FlatBuffers
|
||||
import FlatSerialization
|
||||
import Postbox
|
||||
|
||||
#if DEBUG && false
|
||||
#if DEBUG
|
||||
public var flatBuffers_checkedGet: Bool = true
|
||||
#else
|
||||
public var flatBuffers_checkedGet: Bool = false
|
||||
#endif
|
||||
|
||||
@inline(__always)
|
||||
public func FlatBuffers_getRoot<T: FlatBufferObject & Verifiable>(
|
||||
byteBuffer: inout ByteBuffer,
|
||||
fileId: String? = nil,
|
||||
options: VerifierOptions = .init()
|
||||
) -> T {
|
||||
return try! getCheckedRoot(byteBuffer: &byteBuffer, fileId: fileId, options: options)
|
||||
if flatBuffers_checkedGet {
|
||||
return getRoot(byteBuffer: &byteBuffer)
|
||||
} else {
|
||||
return try! getCheckedRoot(byteBuffer: &byteBuffer, fileId: fileId, options: options)
|
||||
}
|
||||
}
|
||||
#else
|
||||
@inline(__always)
|
||||
public func FlatBuffers_getRoot<T: FlatBufferObject>(byteBuffer: inout ByteBuffer) -> T {
|
||||
return getRoot(byteBuffer: &byteBuffer)
|
||||
}
|
||||
#endif
|
||||
|
||||
public enum FlatBuffersError: Error {
|
||||
case missingRequiredField(file: String, line: Int)
|
||||
case value_missingRequiredField(file: String, line: Int)
|
||||
case invalidUnionType
|
||||
|
||||
public static func missingRequiredField(file: String = #file, line: Int = #line) -> FlatBuffersError {
|
||||
if flatBuffers_checkedGet {
|
||||
preconditionFailure()
|
||||
}
|
||||
|
||||
return .value_missingRequiredField(file: file, line: line)
|
||||
}
|
||||
}
|
||||
|
||||
public extension PeerId {
|
||||
|
@ -8,16 +8,16 @@ public func TelegramMedia_parse(flatBuffersObject: TelegramCore_Media) throws ->
|
||||
switch flatBuffersObject.valueType {
|
||||
case .mediaTelegrammediafile:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_Media_TelegramMediaFile.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
return try TelegramMediaFile(flatBuffersObject: value.file)
|
||||
case .mediaTelegrammediaimage:
|
||||
guard let value = flatBuffersObject.value(type: TelegramCore_Media_TelegramMediaImage.self) else {
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
return try TelegramMediaImage(flatBuffersObject: value.image)
|
||||
case .none_:
|
||||
throw FlatBuffersError.missingRequiredField(file: #file, line: #line)
|
||||
throw FlatBuffersError.missingRequiredField()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -65,6 +65,7 @@ public struct ExperimentalUISettings: Codable, Equatable {
|
||||
public var devRequests: Bool
|
||||
public var fakeAds: Bool
|
||||
public var conferenceDebug: Bool
|
||||
public var checkSerializedData: Bool
|
||||
|
||||
public static var defaultSettings: ExperimentalUISettings {
|
||||
return ExperimentalUISettings(
|
||||
@ -107,7 +108,8 @@ public struct ExperimentalUISettings: Codable, Equatable {
|
||||
playerV2: false,
|
||||
devRequests: false,
|
||||
fakeAds: false,
|
||||
conferenceDebug: false
|
||||
conferenceDebug: false,
|
||||
checkSerializedData: false
|
||||
)
|
||||
}
|
||||
|
||||
@ -151,7 +153,8 @@ public struct ExperimentalUISettings: Codable, Equatable {
|
||||
playerV2: Bool,
|
||||
devRequests: Bool,
|
||||
fakeAds: Bool,
|
||||
conferenceDebug: Bool
|
||||
conferenceDebug: Bool,
|
||||
checkSerializedData: Bool
|
||||
) {
|
||||
self.keepChatNavigationStack = keepChatNavigationStack
|
||||
self.skipReadHistory = skipReadHistory
|
||||
@ -193,6 +196,7 @@ public struct ExperimentalUISettings: Codable, Equatable {
|
||||
self.devRequests = devRequests
|
||||
self.fakeAds = fakeAds
|
||||
self.conferenceDebug = conferenceDebug
|
||||
self.checkSerializedData = checkSerializedData
|
||||
}
|
||||
|
||||
public init(from decoder: Decoder) throws {
|
||||
@ -238,6 +242,7 @@ public struct ExperimentalUISettings: Codable, Equatable {
|
||||
self.devRequests = try container.decodeIfPresent(Bool.self, forKey: "devRequests") ?? false
|
||||
self.fakeAds = try container.decodeIfPresent(Bool.self, forKey: "fakeAds") ?? false
|
||||
self.conferenceDebug = try container.decodeIfPresent(Bool.self, forKey: "conferenceDebug") ?? false
|
||||
self.checkSerializedData = try container.decodeIfPresent(Bool.self, forKey: "checkSerializedData") ?? false
|
||||
}
|
||||
|
||||
public func encode(to encoder: Encoder) throws {
|
||||
@ -283,6 +288,7 @@ public struct ExperimentalUISettings: Codable, Equatable {
|
||||
try container.encodeIfPresent(self.devRequests, forKey: "devRequests")
|
||||
try container.encodeIfPresent(self.fakeAds, forKey: "fakeAds")
|
||||
try container.encodeIfPresent(self.conferenceDebug, forKey: "conferenceDebug")
|
||||
try container.encodeIfPresent(self.checkSerializedData, forKey: "checkSerializedData")
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user