diff --git a/src/TL.Schema.cs b/src/TL.Schema.cs
index c441a9e..15f24ce 100644
--- a/src/TL.Schema.cs
+++ b/src/TL.Schema.cs
@@ -2609,7 +2609,7 @@ namespace TL
/// Full list of blocked users. See
[TLDef(0x0ADE1591)]
- public partial class Contacts_Blocked : IObject
+ public partial class Contacts_Blocked : IObject, IPeerResolver
{
/// List of blocked users
public PeerBlocked[] blocked;
@@ -2629,7 +2629,7 @@ namespace TL
}
/// Object contains a list of chats with messages and auxiliary data. Derived classes: , , See
- public abstract partial class Messages_DialogsBase : IObject
+ public abstract partial class Messages_DialogsBase : IObject, IPeerResolver
{
/// List of chats
public abstract DialogBase[] Dialogs { get; }
@@ -2640,7 +2640,7 @@ namespace TL
}
/// Full list of chats with messages and auxiliary data. See
[TLDef(0x15BA6C40)]
- public partial class Messages_Dialogs : Messages_DialogsBase
+ public partial class Messages_Dialogs : Messages_DialogsBase, IPeerResolver
{
/// List of chats
public DialogBase[] dialogs;
@@ -2660,14 +2660,14 @@ namespace TL
}
/// Incomplete list of dialogs with messages and auxiliary data. See
[TLDef(0x71E094F3)]
- public partial class Messages_DialogsSlice : Messages_Dialogs
+ public partial class Messages_DialogsSlice : Messages_Dialogs, IPeerResolver
{
/// Total number of dialogs
public int count;
}
/// Dialogs haven't changed See
[TLDef(0xF0E3E596)]
- public partial class Messages_DialogsNotModified : Messages_DialogsBase
+ public partial class Messages_DialogsNotModified : Messages_DialogsBase, IPeerResolver
{
/// Number of dialogs found server-side by the query
public int count;
@@ -2679,7 +2679,7 @@ namespace TL
}
/// Object contains infor on list of messages with auxiliary data. Derived classes: , , , See
- public abstract partial class Messages_MessagesBase : IObject
+ public abstract partial class Messages_MessagesBase : IObject, IPeerResolver
{
/// List of messages
public abstract MessageBase[] Messages { get; }
@@ -2688,7 +2688,7 @@ namespace TL
}
/// Full list of messages with auxilary data. See
[TLDef(0x8C718E87)]
- public partial class Messages_Messages : Messages_MessagesBase
+ public partial class Messages_Messages : Messages_MessagesBase, IPeerResolver
{
/// List of messages
public MessageBase[] messages;
@@ -2704,7 +2704,7 @@ namespace TL
}
/// Incomplete list of messages and auxiliary data. See
[TLDef(0x3A54685E)]
- public partial class Messages_MessagesSlice : Messages_Messages
+ public partial class Messages_MessagesSlice : Messages_Messages, IPeerResolver
{
/// Flags, see TL conditional fields
public Flags flags;
@@ -2727,7 +2727,7 @@ namespace TL
}
/// Channel messages See
[TLDef(0x64479808)]
- public partial class Messages_ChannelMessages : Messages_MessagesBase
+ public partial class Messages_ChannelMessages : Messages_MessagesBase, IPeerResolver
{
/// Flags, see TL conditional fields
public Flags flags;
@@ -2759,7 +2759,7 @@ namespace TL
}
/// No new messages matching the query were found See
[TLDef(0x74535F21)]
- public partial class Messages_MessagesNotModified : Messages_MessagesBase
+ public partial class Messages_MessagesNotModified : Messages_MessagesBase, IPeerResolver
{
/// Number of results found server-side by the given query
public int count;
@@ -2786,7 +2786,7 @@ namespace TL
/// Extended info on chat and auxiliary data. See
[TLDef(0xE5D7D19C)]
- public partial class Messages_ChatFull : IObject
+ public partial class Messages_ChatFull : IObject, IPeerResolver
{
/// Extended info on a chat
public ChatFullBase full_chat;
@@ -4002,7 +4002,7 @@ namespace TL
}
/// Occurred changes. Derived classes: , , , See
- public abstract partial class Updates_DifferenceBase : IObject
+ public abstract partial class Updates_DifferenceBase : IObject, IPeerResolver
{
/// List of new messages
public abstract MessageBase[] NewMessages { get; }
@@ -4015,7 +4015,7 @@ namespace TL
}
/// No events. See
[TLDef(0x5D75A138)]
- public partial class Updates_DifferenceEmpty : Updates_DifferenceBase
+ public partial class Updates_DifferenceEmpty : Updates_DifferenceBase, IPeerResolver
{
/// Current date
public DateTime date;
@@ -4030,7 +4030,7 @@ namespace TL
}
/// Full list of occurred events. See
[TLDef(0x00F49CA0)]
- public partial class Updates_Difference : Updates_DifferenceBase
+ public partial class Updates_Difference : Updates_DifferenceBase, IPeerResolver
{
/// List of new messages
public MessageBase[] new_messages;
@@ -4056,7 +4056,7 @@ namespace TL
}
/// Incomplete list of occurred events. See
[TLDef(0xA8FB1981)]
- public partial class Updates_DifferenceSlice : Updates_DifferenceBase
+ public partial class Updates_DifferenceSlice : Updates_DifferenceBase, IPeerResolver
{
/// List of new messgaes
public MessageBase[] new_messages;
@@ -4082,7 +4082,7 @@ namespace TL
}
/// The difference is too long, and the specified state must be used to refetch updates. See
[TLDef(0x4AFE8F6D)]
- public partial class Updates_DifferenceTooLong : Updates_DifferenceBase
+ public partial class Updates_DifferenceTooLong : Updates_DifferenceBase, IPeerResolver
{
/// The new state to use.
public int pts;
@@ -4230,7 +4230,7 @@ namespace TL
}
/// Constructor for a group of updates. See
[TLDef(0x725B04C3)]
- public partial class UpdatesCombined : UpdatesBase
+ public partial class UpdatesCombined : UpdatesBase, IPeerResolver
{
/// List of updates
public Update[] updates;
@@ -4252,7 +4252,7 @@ namespace TL
}
/// Full constructor of updates See
[TLDef(0x74AE4240)]
- public partial class Updates : UpdatesBase
+ public partial class Updates : UpdatesBase, IPeerResolver
{
/// List of updates
public Update[] updates;
@@ -5039,7 +5039,7 @@ namespace TL
/// Users found by name substring and auxiliary data. See
[TLDef(0xB3134D9D)]
- public partial class Contacts_Found : IObject
+ public partial class Contacts_Found : IObject, IPeerResolver
{
/// Personalized results
public Peer[] my_results;
@@ -5183,7 +5183,7 @@ namespace TL
/// Privacy rules See
[TLDef(0x50A04E45)]
- public partial class Account_PrivacyRules : IObject
+ public partial class Account_PrivacyRules : IObject, IPeerResolver
{
/// Privacy rules
public PrivacyRule[] rules;
@@ -6190,14 +6190,14 @@ namespace TL
}
/// Contains the difference (new messages) between our local channel state and the remote state Derived classes: , , See
- public abstract partial class Updates_ChannelDifferenceBase : IObject
+ public abstract partial class Updates_ChannelDifferenceBase : IObject, IPeerResolver
{
/// returns a or for the given Peer
public abstract IPeerInfo UserOrChat(Peer peer);
}
/// There are no new updates See
[TLDef(0x3E11AFFB)]
- public partial class Updates_ChannelDifferenceEmpty : Updates_ChannelDifferenceBase
+ public partial class Updates_ChannelDifferenceEmpty : Updates_ChannelDifferenceBase, IPeerResolver
{
/// Flags, see TL conditional fields
public Flags flags;
@@ -6218,7 +6218,7 @@ namespace TL
}
/// The provided pts + limit < remote pts. Simply, there are too many updates to be fetched (more than limit), the client has to resolve the update gap in one of the following ways: See
[TLDef(0xA4BCC6FE)]
- public partial class Updates_ChannelDifferenceTooLong : Updates_ChannelDifferenceBase
+ public partial class Updates_ChannelDifferenceTooLong : Updates_ChannelDifferenceBase, IPeerResolver
{
/// Flags, see TL conditional fields
public Flags flags;
@@ -6245,7 +6245,7 @@ namespace TL
}
/// The new updates See
[TLDef(0x2064674E)]
- public partial class Updates_ChannelDifference : Updates_ChannelDifferenceBase
+ public partial class Updates_ChannelDifference : Updates_ChannelDifferenceBase, IPeerResolver
{
/// Flags, see TL conditional fields
public Flags flags;
@@ -6457,7 +6457,7 @@ namespace TL
/// Represents multiple channel participants See
/// a null value means channels.channelParticipantsNotModified
[TLDef(0x9AB0FEAF)]
- public partial class Channels_ChannelParticipants : IObject
+ public partial class Channels_ChannelParticipants : IObject, IPeerResolver
{
/// Total number of participants that correspond to the given query
public int count;
@@ -6473,7 +6473,7 @@ namespace TL
/// Represents a channel participant See
[TLDef(0xDFB80317)]
- public partial class Channels_ChannelParticipant : IObject
+ public partial class Channels_ChannelParticipant : IObject, IPeerResolver
{
/// The channel participant
public ChannelParticipantBase participant;
@@ -7264,7 +7264,7 @@ namespace TL
/// Dialog info of multiple peers See
[TLDef(0x3371C354)]
- public partial class Messages_PeerDialogs : IObject
+ public partial class Messages_PeerDialogs : IObject, IPeerResolver
{
/// Dialog info
public DialogBase[] dialogs;
@@ -7328,7 +7328,7 @@ namespace TL
public abstract partial class Contacts_TopPeersBase : IObject { }
/// Top peers See
[TLDef(0x70B772A8)]
- public partial class Contacts_TopPeers : Contacts_TopPeersBase
+ public partial class Contacts_TopPeers : Contacts_TopPeersBase, IPeerResolver
{
/// Top peers by top peer category
public TopPeerCategoryPeers[] categories;
@@ -9220,7 +9220,7 @@ namespace TL
/// Admin log events See
[TLDef(0xED8AF74D)]
- public partial class Channels_AdminLogResults : IObject
+ public partial class Channels_AdminLogResults : IObject, IPeerResolver
{
/// Admin log events
public ChannelAdminLogEvent[] events;
@@ -9339,7 +9339,7 @@ namespace TL
/// Recent t.me URLs See
[TLDef(0x0E0310D7)]
- public partial class Help_RecentMeUrls : IObject
+ public partial class Help_RecentMeUrls : IObject, IPeerResolver
{
/// URLs
public RecentMeUrl[] urls;
@@ -10927,7 +10927,7 @@ namespace TL
/// Inactive chat list See
[TLDef(0xA927FEC5)]
- public partial class Messages_InactiveChats : IObject
+ public partial class Messages_InactiveChats : IObject, IPeerResolver
{
/// When was the chat last active
public int[] dates;
@@ -11336,8 +11336,8 @@ namespace TL
/// Field has a value
has_psa_message = 0x4,
}
- /// returns a or for the given Peer
- public IPeerInfo UserOrChat(Peer peer) => peer.UserOrChat(users, chats);
+ /// returns a or for the result
+ public IPeerInfo UserOrChat => peer.UserOrChat(users, chats);
}
/// Animated profile picture in MPEG4 format See
@@ -11539,7 +11539,7 @@ namespace TL
/// View, forward counter + info about replies See
[TLDef(0xB6C4F543)]
- public partial class Messages_MessageViews : IObject
+ public partial class Messages_MessageViews : IObject, IPeerResolver
{
/// View, forward counter + info about replies
public MessageViews[] views;
@@ -11553,7 +11553,7 @@ namespace TL
/// Information about a message thread See
[TLDef(0xA6341782)]
- public partial class Messages_DiscussionMessage : IObject
+ public partial class Messages_DiscussionMessage : IObject, IPeerResolver
{
/// Flags, see TL conditional fields
public Flags flags;
@@ -11814,7 +11814,7 @@ namespace TL
/// Contains info about a group call, and partial info about its participants. See
[TLDef(0x9E727AAD)]
- public partial class Phone_GroupCall : IObject
+ public partial class Phone_GroupCall : IObject, IPeerResolver
{
/// Info about the group call
public GroupCallBase call;
@@ -11832,7 +11832,7 @@ namespace TL
/// Info about the participants of a group call or livestream See
[TLDef(0xF47751B6)]
- public partial class Phone_GroupParticipants : IObject
+ public partial class Phone_GroupParticipants : IObject, IPeerResolver
{
/// Number of participants
public int count;
@@ -12024,7 +12024,7 @@ namespace TL
/// A list of peers that can be used to join a group call, presenting yourself as a specific user/channel. See
[TLDef(0xAFE5623F)]
- public partial class Phone_JoinAsPeers : IObject
+ public partial class Phone_JoinAsPeers : IObject, IPeerResolver
{
/// Peers
public Peer[] peers;
@@ -12167,7 +12167,7 @@ namespace TL
/// A set of sponsored messages associated to a channel See
[TLDef(0x65A4C7D5)]
- public partial class Messages_SponsoredMessages : IObject
+ public partial class Messages_SponsoredMessages : IObject, IPeerResolver
{
/// Sponsored messages
public SponsoredMessage[] messages;
@@ -12191,7 +12191,7 @@ namespace TL
/// See
[TLDef(0x147EE23C)]
- public partial class Messages_SearchResultsCalendar : IObject
+ public partial class Messages_SearchResultsCalendar : IObject, IPeerResolver
{
public Flags flags;
public int count;
diff --git a/src/TL.cs b/src/TL.cs
index 92491ce..c50b65a 100644
--- a/src/TL.cs
+++ b/src/TL.cs
@@ -11,6 +11,7 @@ namespace TL
{
public interface IObject { }
public interface IMethod : IObject { }
+ public interface IPeerResolver { IPeerInfo UserOrChat(Peer peer); }
public static class Serialization
{