BREAKING CHANGE: Introducing inheritAfter which allows for better/simplified (but possibly changed) class hierarchy generation.

Also improved layers class generation.
This commit is contained in:
Wizou 2021-09-26 05:07:17 +02:00
parent e6c5d94d9d
commit e3b70fda19
6 changed files with 387 additions and 407 deletions

View file

@ -6,10 +6,20 @@ namespace TL
using BinaryWriter = System.IO.BinaryWriter;
using Client = WTelegram.Client;
///<summary>See <a href="https://core.telegram.org/type/DecryptedMessage"/></summary>
public abstract partial class DecryptedMessageBase : ITLObject { }
///<summary>See <a href="https://core.telegram.org/type/DecryptedMessageMedia"/></summary>
public abstract partial class DecryptedMessageMedia : ITLObject { }
///<summary>See <a href="https://core.telegram.org/type/DecryptedMessageAction"/></summary>
public abstract partial class DecryptedMessageAction : ITLObject { }
///<summary>See <a href="https://core.telegram.org/type/FileLocation"/></summary>
public abstract partial class FileLocationBase : ITLObject { }
namespace Layer8
{
///<summary>See <a href="https://core.telegram.org/type/DecryptedMessage"/></summary>
public abstract partial class DecryptedMessageBase : ITLObject { }
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessage"/></summary>
[TLDef(0x1F814F1F)]
public partial class DecryptedMessage : DecryptedMessageBase
@ -28,8 +38,6 @@ namespace TL
public DecryptedMessageAction action;
}
///<summary>See <a href="https://core.telegram.org/type/DecryptedMessageMedia"/></summary>
public abstract partial class DecryptedMessageMedia : ITLObject { }
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageMediaEmpty"/></summary>
[TLDef(0x089F5C4A)]
public partial class DecryptedMessageMediaEmpty : DecryptedMessageMedia { }
@ -99,8 +107,6 @@ namespace TL
public byte[] iv;
}
///<summary>See <a href="https://core.telegram.org/type/DecryptedMessageAction"/></summary>
public abstract partial class DecryptedMessageAction : ITLObject { }
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageActionSetMessageTTL"/></summary>
[TLDef(0xA1733AEC)]
public partial class DecryptedMessageActionSetMessageTTL : DecryptedMessageAction { public int ttl_seconds; }
@ -120,8 +126,19 @@ namespace TL
namespace Layer17
{
///<summary>See <a href="https://core.telegram.org/type/DecryptedMessage"/></summary>
public abstract partial class DecryptedMessageBase : ITLObject { }
///<summary>See <a href="https://core.telegram.org/constructor/sendMessageUploadVideoAction"/></summary>
[TLDef(0x92042FF7)]
public partial class SendMessageUploadVideoAction : SendMessageAction { }
///<summary>See <a href="https://core.telegram.org/constructor/sendMessageUploadAudioAction"/></summary>
[TLDef(0xE6AC8A6F)]
public partial class SendMessageUploadAudioAction : SendMessageAction { }
///<summary>See <a href="https://core.telegram.org/constructor/sendMessageUploadPhotoAction"/></summary>
[TLDef(0x990A3C1A)]
public partial class SendMessageUploadPhotoAction : SendMessageAction { }
///<summary>See <a href="https://core.telegram.org/constructor/sendMessageUploadDocumentAction"/></summary>
[TLDef(0x8FAEE98E)]
public partial class SendMessageUploadDocumentAction : SendMessageAction { }
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessage"/></summary>
[TLDef(0x204D3878)]
public partial class DecryptedMessage : DecryptedMessageBase
@ -139,8 +156,6 @@ namespace TL
public DecryptedMessageAction action;
}
///<summary>See <a href="https://core.telegram.org/type/DecryptedMessageMedia"/></summary>
public abstract partial class DecryptedMessageMedia : ITLObject { }
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageMediaVideo"/></summary>
[TLDef(0x524A415D)]
public partial class DecryptedMessageMediaVideo : DecryptedMessageMedia
@ -167,32 +182,6 @@ namespace TL
public byte[] iv;
}
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageLayer"/></summary>
[TLDef(0x1BE31789)]
public partial class DecryptedMessageLayer : ITLObject
{
public byte[] random_bytes;
public int layer;
public int in_seq_no;
public int out_seq_no;
public DecryptedMessageBase message;
}
///<summary>See <a href="https://core.telegram.org/constructor/sendMessageUploadVideoAction"/></summary>
[TLDef(0x92042FF7)]
public partial class SendMessageUploadVideoAction : SendMessageAction { }
///<summary>See <a href="https://core.telegram.org/constructor/sendMessageUploadAudioAction"/></summary>
[TLDef(0xE6AC8A6F)]
public partial class SendMessageUploadAudioAction : SendMessageAction { }
///<summary>See <a href="https://core.telegram.org/constructor/sendMessageUploadPhotoAction"/></summary>
[TLDef(0x990A3C1A)]
public partial class SendMessageUploadPhotoAction : SendMessageAction { }
///<summary>See <a href="https://core.telegram.org/constructor/sendMessageUploadDocumentAction"/></summary>
[TLDef(0x8FAEE98E)]
public partial class SendMessageUploadDocumentAction : SendMessageAction { }
///<summary>See <a href="https://core.telegram.org/type/DecryptedMessageAction"/></summary>
public abstract partial class DecryptedMessageAction : ITLObject { }
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageActionResend"/></summary>
[TLDef(0x511110B0)]
public partial class DecryptedMessageActionResend : DecryptedMessageAction
@ -206,122 +195,40 @@ namespace TL
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageActionTyping"/></summary>
[TLDef(0xCCB27641)]
public partial class DecryptedMessageActionTyping : DecryptedMessageAction { public SendMessageAction action; }
}
namespace Layer20
{
///<summary>See <a href="https://core.telegram.org/type/DecryptedMessageAction"/></summary>
public abstract partial class DecryptedMessageAction : ITLObject { }
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageActionRequestKey"/></summary>
[TLDef(0xF3C9611B)]
public partial class DecryptedMessageActionRequestKey : DecryptedMessageAction
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageLayer"/></summary>
[TLDef(0x1BE31789)]
public partial class DecryptedMessageLayer : ITLObject
{
public long exchange_id;
public byte[] g_a;
}
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageActionAcceptKey"/></summary>
[TLDef(0x6FE1735B)]
public partial class DecryptedMessageActionAcceptKey : DecryptedMessageAction
{
public long exchange_id;
public byte[] g_b;
public long key_fingerprint;
}
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageActionAbortKey"/></summary>
[TLDef(0xDD05EC6B)]
public partial class DecryptedMessageActionAbortKey : DecryptedMessageAction { public long exchange_id; }
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageActionCommitKey"/></summary>
[TLDef(0xEC2E0B9B)]
public partial class DecryptedMessageActionCommitKey : DecryptedMessageAction
{
public long exchange_id;
public long key_fingerprint;
}
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageActionNoop"/></summary>
[TLDef(0xA82FDD63)]
public partial class DecryptedMessageActionNoop : DecryptedMessageAction { }
}
namespace Layer23
{
///<summary>See <a href="https://core.telegram.org/constructor/documentAttributeSticker"/></summary>
[TLDef(0xFB0A5727)]
public partial class DocumentAttributeSticker : DocumentAttribute { }
///<summary>See <a href="https://core.telegram.org/constructor/documentAttributeVideo"/></summary>
[TLDef(0x5910CCCB)]
public partial class DocumentAttributeVideo : DocumentAttribute
{
public int duration;
public int w;
public int h;
}
///<summary>See <a href="https://core.telegram.org/constructor/documentAttributeAudio"/></summary>
[TLDef(0x051448E5)]
public partial class DocumentAttributeAudio : DocumentAttribute { public int duration; }
///<summary>See <a href="https://core.telegram.org/constructor/photoSize"/></summary>
[TLDef(0x77BFB61B)]
public partial class PhotoSize : PhotoSizeBase
{
public string type;
public FileLocationBase location;
public int w;
public int h;
public int size;
}
///<summary>See <a href="https://core.telegram.org/constructor/photoCachedSize"/></summary>
[TLDef(0xE9A734FA)]
public partial class PhotoCachedSize : PhotoSizeBase
{
public string type;
public FileLocationBase location;
public int w;
public int h;
public byte[] bytes;
}
///<summary>See <a href="https://core.telegram.org/type/FileLocation"/></summary>
public abstract partial class FileLocationBase : ITLObject { }
///<summary>See <a href="https://core.telegram.org/constructor/fileLocationUnavailable"/></summary>
[TLDef(0x7C596B46)]
public partial class FileLocationUnavailable : FileLocationBase
{
public long volume_id;
public int local_id;
public long secret;
}
///<summary>See <a href="https://core.telegram.org/constructor/fileLocation"/></summary>
[TLDef(0x53D69076)]
public partial class FileLocation : FileLocationBase
{
public int dc_id;
public long volume_id;
public int local_id;
public long secret;
}
///<summary>See <a href="https://core.telegram.org/type/DecryptedMessageMedia"/></summary>
public abstract partial class DecryptedMessageMedia : ITLObject { }
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageMediaExternalDocument"/></summary>
[TLDef(0xFA95B0DD)]
public partial class DecryptedMessageMediaExternalDocument : DecryptedMessageMedia
{
public long id;
public long access_hash;
public DateTime date;
public string mime_type;
public int size;
public PhotoSizeBase thumb;
public int dc_id;
public DocumentAttribute[] attributes;
public byte[] random_bytes;
public int layer;
public int in_seq_no;
public int out_seq_no;
public DecryptedMessageBase message;
}
}
namespace Layer45
{
///<summary>See <a href="https://core.telegram.org/constructor/documentAttributeSticker"/></summary>
[TLDef(0x3A556302)]
public partial class DocumentAttributeSticker : DocumentAttribute
{
public string alt;
public InputStickerSet stickerset;
}
///<summary>See <a href="https://core.telegram.org/constructor/documentAttributeAudio"/></summary>
[TLDef(0xDED218E0)]
public partial class DocumentAttributeAudio : DocumentAttribute
{
public int duration;
public string title;
public string performer;
}
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessage"/></summary>
[TLDef(0x36B091DE)]
public partial class DecryptedMessage : ITLObject
public partial class DecryptedMessage : DecryptedMessageBase
{
[Flags] public enum Flags { has_reply_to_random_id = 0x8, has_entities = 0x80, has_media = 0x200, has_via_bot_name = 0x800 }
public Flags flags;
@ -334,8 +241,6 @@ namespace TL
[IfFlag(3)] public long reply_to_random_id;
}
///<summary>See <a href="https://core.telegram.org/type/DecryptedMessageMedia"/></summary>
public abstract partial class DecryptedMessageMedia : ITLObject { }
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageMediaPhoto"/></summary>
[TLDef(0xF1FA8D78)]
public partial class DecryptedMessageMediaPhoto : DecryptedMessageMedia
@ -394,26 +299,130 @@ namespace TL
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageMediaWebPage"/></summary>
[TLDef(0xE50511D8)]
public partial class DecryptedMessageMediaWebPage : DecryptedMessageMedia { public string url; }
}
///<summary>See <a href="https://core.telegram.org/constructor/documentAttributeSticker"/></summary>
[TLDef(0x3A556302)]
public partial class DocumentAttributeSticker : DocumentAttribute
namespace Layer73
{
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessage"/></summary>
[TLDef(0x91CC4674)]
public partial class DecryptedMessage : DecryptedMessageBase
{
public string alt;
public InputStickerSet stickerset;
}
///<summary>See <a href="https://core.telegram.org/constructor/documentAttributeAudio"/></summary>
[TLDef(0xDED218E0)]
public partial class DocumentAttributeAudio : DocumentAttribute
{
public int duration;
public string title;
public string performer;
[Flags] public enum Flags { has_reply_to_random_id = 0x8, has_entities = 0x80, has_media = 0x200, has_via_bot_name = 0x800,
has_grouped_id = 0x20000 }
public Flags flags;
public long random_id;
public int ttl;
public string message;
[IfFlag(9)] public DecryptedMessageMedia media;
[IfFlag(7)] public MessageEntity[] entities;
[IfFlag(11)] public string via_bot_name;
[IfFlag(3)] public long reply_to_random_id;
[IfFlag(17)] public long grouped_id;
}
}
namespace Layer46
{ }
namespace Layer20
{
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageActionRequestKey"/></summary>
[TLDef(0xF3C9611B)]
public partial class DecryptedMessageActionRequestKey : DecryptedMessageAction
{
public long exchange_id;
public byte[] g_a;
}
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageActionAcceptKey"/></summary>
[TLDef(0x6FE1735B)]
public partial class DecryptedMessageActionAcceptKey : DecryptedMessageAction
{
public long exchange_id;
public byte[] g_b;
public long key_fingerprint;
}
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageActionAbortKey"/></summary>
[TLDef(0xDD05EC6B)]
public partial class DecryptedMessageActionAbortKey : DecryptedMessageAction { public long exchange_id; }
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageActionCommitKey"/></summary>
[TLDef(0xEC2E0B9B)]
public partial class DecryptedMessageActionCommitKey : DecryptedMessageAction
{
public long exchange_id;
public long key_fingerprint;
}
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageActionNoop"/></summary>
[TLDef(0xA82FDD63)]
public partial class DecryptedMessageActionNoop : DecryptedMessageAction { }
}
namespace Layer23
{
///<summary>See <a href="https://core.telegram.org/constructor/photoSize"/></summary>
[TLDef(0x77BFB61B)]
public partial class PhotoSize : PhotoSizeBase
{
public string type;
public FileLocationBase location;
public int w;
public int h;
public int size;
}
///<summary>See <a href="https://core.telegram.org/constructor/photoCachedSize"/></summary>
[TLDef(0xE9A734FA)]
public partial class PhotoCachedSize : PhotoSizeBase
{
public string type;
public FileLocationBase location;
public int w;
public int h;
public byte[] bytes;
}
///<summary>See <a href="https://core.telegram.org/constructor/documentAttributeSticker"/></summary>
[TLDef(0xFB0A5727)]
public partial class DocumentAttributeSticker : DocumentAttribute { }
///<summary>See <a href="https://core.telegram.org/constructor/documentAttributeVideo"/></summary>
[TLDef(0x5910CCCB)]
public partial class DocumentAttributeVideo : DocumentAttribute
{
public int duration;
public int w;
public int h;
}
///<summary>See <a href="https://core.telegram.org/constructor/documentAttributeAudio"/></summary>
[TLDef(0x051448E5)]
public partial class DocumentAttributeAudio : DocumentAttribute { public int duration; }
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessageMediaExternalDocument"/></summary>
[TLDef(0xFA95B0DD)]
public partial class DecryptedMessageMediaExternalDocument : DecryptedMessageMedia
{
public long id;
public long access_hash;
public DateTime date;
public string mime_type;
public int size;
public PhotoSizeBase thumb;
public int dc_id;
public DocumentAttribute[] attributes;
}
///<summary>See <a href="https://core.telegram.org/constructor/fileLocationUnavailable"/></summary>
[TLDef(0x7C596B46)]
public partial class FileLocationUnavailable : FileLocationBase
{
public long volume_id;
public int local_id;
public long secret;
}
///<summary>See <a href="https://core.telegram.org/constructor/fileLocation"/></summary>
[TLDef(0x53D69076)]
public partial class FileLocation : FileLocationBase
{
public int dc_id;
public long volume_id;
public int local_id;
public long secret;
}
}
namespace Layer66
{
@ -422,23 +431,6 @@ namespace TL
public partial class SendMessageUploadRoundAction : SendMessageAction { }
}
namespace Layer73
{
///<summary>See <a href="https://core.telegram.org/constructor/decryptedMessage"/></summary>
[TLDef(0x91CC4674)]
public partial class DecryptedMessage : ITLObject
{
[Flags] public enum Flags { has_reply_to_random_id = 0x8, has_entities = 0x80, has_media = 0x200, has_via_bot_name = 0x800,
has_grouped_id = 0x20000 }
public Flags flags;
public long random_id;
public int ttl;
public string message;
[IfFlag(9)] public Layer45.DecryptedMessageMedia media;
[IfFlag(7)] public MessageEntity[] entities;
[IfFlag(11)] public string via_bot_name;
[IfFlag(3)] public long reply_to_random_id;
[IfFlag(17)] public long grouped_id;
}
}
namespace Layer46
{ }
}