Skip to content

Commit

Permalink
Improve builder hierarchy
Browse files Browse the repository at this point in the history
  • Loading branch information
DRSchlaubi committed Feb 20, 2025
1 parent 6f36c1d commit 74cd4d8
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 35 deletions.
2 changes: 1 addition & 1 deletion common/api/common.api
Original file line number Diff line number Diff line change
Expand Up @@ -3226,11 +3226,11 @@ public final class dev/kord/common/entity/DiscordChatComponent : dev/kord/common
public final fun getDivider ()Ldev/kord/common/entity/optional/OptionalBoolean;
public fun getEmoji ()Ldev/kord/common/entity/optional/Optional;
public final fun getFile ()Ldev/kord/common/entity/optional/Optional;
public final fun getImage ()Ldev/kord/common/entity/optional/Optional;
public final fun getItems ()Ldev/kord/common/entity/optional/Optional;
public fun getLabel ()Ldev/kord/common/entity/optional/Optional;
public fun getMaxLength ()Ldev/kord/common/entity/optional/OptionalInt;
public fun getMaxValues ()Ldev/kord/common/entity/optional/OptionalInt;
public final fun getMedia ()Ldev/kord/common/entity/optional/Optional;
public fun getMinLength ()Ldev/kord/common/entity/optional/OptionalInt;
public fun getMinValues ()Ldev/kord/common/entity/optional/OptionalInt;
public fun getOptions ()Ldev/kord/common/entity/optional/Optional;
Expand Down
4 changes: 2 additions & 2 deletions common/api/common.klib.api
Original file line number Diff line number Diff line change
Expand Up @@ -1730,8 +1730,6 @@ final class dev.kord.common.entity/DiscordChatComponent : dev.kord.common.entity
final fun <get-emoji>(): dev.kord.common.entity.optional/Optional<dev.kord.common.entity/DiscordPartialEmoji> // dev.kord.common.entity/DiscordChatComponent.emoji.<get-emoji>|<get-emoji>(){}[0]
final val file // dev.kord.common.entity/DiscordChatComponent.file|{}file[0]
final fun <get-file>(): dev.kord.common.entity.optional/Optional<dev.kord.common.entity/UnfurledMediaItem> // dev.kord.common.entity/DiscordChatComponent.file.<get-file>|<get-file>(){}[0]
final val image // dev.kord.common.entity/DiscordChatComponent.image|{}image[0]
final fun <get-image>(): dev.kord.common.entity.optional/Optional<dev.kord.common.entity/UnfurledMediaItem> // dev.kord.common.entity/DiscordChatComponent.image.<get-image>|<get-image>(){}[0]
final val items // dev.kord.common.entity/DiscordChatComponent.items|{}items[0]
final fun <get-items>(): dev.kord.common.entity.optional/Optional<kotlin.collections/List<dev.kord.common.entity/MediaGalleryItem>> // dev.kord.common.entity/DiscordChatComponent.items.<get-items>|<get-items>(){}[0]
final val label // dev.kord.common.entity/DiscordChatComponent.label|{}label[0]
Expand All @@ -1740,6 +1738,8 @@ final class dev.kord.common.entity/DiscordChatComponent : dev.kord.common.entity
final fun <get-maxLength>(): dev.kord.common.entity.optional/OptionalInt // dev.kord.common.entity/DiscordChatComponent.maxLength.<get-maxLength>|<get-maxLength>(){}[0]
final val maxValues // dev.kord.common.entity/DiscordChatComponent.maxValues|{}maxValues[0]
final fun <get-maxValues>(): dev.kord.common.entity.optional/OptionalInt // dev.kord.common.entity/DiscordChatComponent.maxValues.<get-maxValues>|<get-maxValues>(){}[0]
final val media // dev.kord.common.entity/DiscordChatComponent.media|{}media[0]
final fun <get-media>(): dev.kord.common.entity.optional/Optional<dev.kord.common.entity/UnfurledMediaItem> // dev.kord.common.entity/DiscordChatComponent.media.<get-media>|<get-media>(){}[0]
final val minLength // dev.kord.common.entity/DiscordChatComponent.minLength|{}minLength[0]
final fun <get-minLength>(): dev.kord.common.entity.optional/OptionalInt // dev.kord.common.entity/DiscordChatComponent.minLength.<get-minLength>|<get-minLength>(){}[0]
final val minValues // dev.kord.common.entity/DiscordChatComponent.minValues|{}minValues[0]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public sealed class EmbedType(
public object Video : EmbedType("video")

/**
* Animated gif image embed rendered as a video embed.
* Animated gif media embed rendered as a video embed.
*/
public object Gifv : EmbedType("gifv")

Expand Down
75 changes: 59 additions & 16 deletions rest/api/rest.api
Original file line number Diff line number Diff line change
Expand Up @@ -1046,7 +1046,19 @@ public final class dev/kord/rest/builder/channel/thread/ThreadModifyBuilderKt {
public abstract interface class dev/kord/rest/builder/component/AccessoryComponentBuilder : dev/kord/rest/builder/component/ComponentBuilder {
}

public final class dev/kord/rest/builder/component/ActionRowBuilder : dev/kord/rest/builder/component/ContainerComponentBuilder, dev/kord/rest/builder/component/MessageComponentBuilder {
public abstract interface class dev/kord/rest/builder/component/AccessoryHolder {
public abstract fun getAccessory ()Ldev/kord/rest/builder/component/AccessoryComponentBuilder;
public abstract fun setAccessory (Ldev/kord/rest/builder/component/AccessoryComponentBuilder;)V
}

public final class dev/kord/rest/builder/component/AccessoryHolderKt {
public static final fun interactionButtonAccessory (Ldev/kord/rest/builder/component/AccessoryHolder;Ldev/kord/common/entity/ButtonStyle;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
public static synthetic fun interactionButtonAccessory$default (Ldev/kord/rest/builder/component/AccessoryHolder;Ldev/kord/common/entity/ButtonStyle;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
public static final fun linkButtonAccessory (Ldev/kord/rest/builder/component/AccessoryHolder;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
public static synthetic fun linkButtonAccessory$default (Ldev/kord/rest/builder/component/AccessoryHolder;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
}

public final class dev/kord/rest/builder/component/ActionRowBuilder : dev/kord/rest/builder/component/ContainerComponentBuilder {
public fun <init> ()V
public fun build ()Ldev/kord/common/entity/DiscordChatComponent;
public synthetic fun build ()Ldev/kord/common/entity/DiscordComponent;
Expand Down Expand Up @@ -1113,20 +1125,37 @@ public abstract interface class dev/kord/rest/builder/component/ComponentBuilder
public abstract fun build ()Ldev/kord/common/entity/DiscordComponent;
}

public final class dev/kord/rest/builder/component/ContainerBuilder : dev/kord/rest/builder/component/MessageComponentBuilder {
public abstract interface class dev/kord/rest/builder/component/ComponentContainerBuilder {
public abstract fun separator (Ldev/kord/common/entity/SeparatorSpacingSize;)V
public abstract fun textDisplay (Ljava/lang/String;)V
}

public final class dev/kord/rest/builder/component/ComponentContainerBuilder$DefaultImpls {
public static fun separator (Ldev/kord/rest/builder/component/ComponentContainerBuilder;Ldev/kord/common/entity/SeparatorSpacingSize;)V
public static fun textDisplay (Ldev/kord/rest/builder/component/ComponentContainerBuilder;Ljava/lang/String;)V
}

public final class dev/kord/rest/builder/component/ComponentContainerBuilderKt {
public static final fun actionRow (Ldev/kord/rest/builder/component/ComponentContainerBuilder;Lkotlin/jvm/functions/Function1;)V
public static final fun file (Ldev/kord/rest/builder/component/ComponentContainerBuilder;Lkotlin/jvm/functions/Function1;)V
public static final fun mediaGallery (Ldev/kord/rest/builder/component/ComponentContainerBuilder;Lkotlin/jvm/functions/Function1;)V
public static final fun section (Ldev/kord/rest/builder/component/ComponentContainerBuilder;Lkotlin/jvm/functions/Function1;)V
public static final fun separator (Ldev/kord/rest/builder/component/ComponentContainerBuilder;Lkotlin/jvm/functions/Function1;)V
public static final fun textDisplay (Ldev/kord/rest/builder/component/ComponentContainerBuilder;Lkotlin/jvm/functions/Function1;)V
}

public final class dev/kord/rest/builder/component/ContainerBuilder : dev/kord/rest/builder/component/ComponentContainerBuilder, dev/kord/rest/builder/component/MessageComponentBuilder {
public fun <init> ()V
public final fun actionRow (Lkotlin/jvm/functions/Function1;)V
public fun addComponent (Ldev/kord/rest/builder/component/ContainerComponentBuilder;)V
public fun build ()Ldev/kord/common/entity/DiscordComponent;
public final fun file (Lkotlin/jvm/functions/Function1;)V
public final fun getAccentColor ()Ldev/kord/common/Color;
public final fun getComponents ()Ljava/util/List;
public final fun getSpoiler ()Ljava/lang/Boolean;
public final fun mediaGallery (Lkotlin/jvm/functions/Function1;)V
public final fun section (Lkotlin/jvm/functions/Function1;)V
public final fun separator (Lkotlin/jvm/functions/Function1;)V
public fun separator (Ldev/kord/common/entity/SeparatorSpacingSize;)V
public final fun setAccentColor (Ldev/kord/common/Color;)V
public final fun setComponents (Ljava/util/List;)V
public final fun setSpoiler (Ljava/lang/Boolean;)V
public final fun textDisplay (Lkotlin/jvm/functions/Function1;)V
public fun textDisplay (Ljava/lang/String;)V
}

public abstract interface class dev/kord/rest/builder/component/ContainerComponentBuilder : dev/kord/rest/builder/component/MessageComponentBuilder {
Expand Down Expand Up @@ -1181,16 +1210,13 @@ public final class dev/kord/rest/builder/component/RoleSelectBuilder : dev/kord/
public final fun getDefaultRoles ()Ljava/util/List;
}

public final class dev/kord/rest/builder/component/SectionBuilder : dev/kord/rest/builder/component/ContainerComponentBuilder {
public final class dev/kord/rest/builder/component/SectionBuilder : dev/kord/rest/builder/component/AccessoryHolder, dev/kord/rest/builder/component/ContainerComponentBuilder {
public fun <init> ()V
public fun build ()Ldev/kord/common/entity/DiscordComponent;
public final fun getAccessory ()Ldev/kord/rest/builder/component/AccessoryComponentBuilder;
public fun getAccessory ()Ldev/kord/rest/builder/component/AccessoryComponentBuilder;
public final fun getComponents ()Ljava/util/List;
public final fun interactionButtonAccessory (Ldev/kord/common/entity/ButtonStyle;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
public static synthetic fun interactionButtonAccessory$default (Ldev/kord/rest/builder/component/SectionBuilder;Ldev/kord/common/entity/ButtonStyle;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
public final fun linkButtonAccessory (Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
public static synthetic fun linkButtonAccessory$default (Ldev/kord/rest/builder/component/SectionBuilder;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
public final fun setAccessory (Ldev/kord/rest/builder/component/AccessoryComponentBuilder;)V
public fun setAccessory (Ldev/kord/rest/builder/component/AccessoryComponentBuilder;)V
public final fun textDisplay (Ljava/lang/String;)V
public final fun textDisplay (Lkotlin/jvm/functions/Function1;)V
public final fun thumbnailAccessory (Lkotlin/jvm/functions/Function1;)V
}
Expand Down Expand Up @@ -2269,7 +2295,8 @@ public final class dev/kord/rest/builder/message/EmbedBuilder$Thumbnail : dev/ko
public synthetic fun toRequest ()Ljava/lang/Object;
}

public abstract interface class dev/kord/rest/builder/message/MessageBuilder {
public abstract interface class dev/kord/rest/builder/message/MessageBuilder : dev/kord/rest/builder/component/ComponentContainerBuilder {
public abstract fun addComponent (Ldev/kord/rest/builder/component/ContainerComponentBuilder;)V
public abstract fun addFile (Ljava/lang/String;Lio/ktor/client/request/forms/ChannelProvider;)Ldev/kord/rest/NamedFile;
public abstract fun getAllowedMentions ()Ldev/kord/rest/builder/message/AllowedMentionsBuilder;
public abstract fun getAttachments ()Ljava/util/List;
Expand All @@ -2289,7 +2316,10 @@ public abstract interface class dev/kord/rest/builder/message/MessageBuilder {
}

public final class dev/kord/rest/builder/message/MessageBuilder$DefaultImpls {
public static fun addComponent (Ldev/kord/rest/builder/message/MessageBuilder;Ldev/kord/rest/builder/component/ContainerComponentBuilder;)V
public static fun addFile (Ldev/kord/rest/builder/message/MessageBuilder;Ljava/lang/String;Lio/ktor/client/request/forms/ChannelProvider;)Ldev/kord/rest/NamedFile;
public static fun separator (Ldev/kord/rest/builder/message/MessageBuilder;Ldev/kord/common/entity/SeparatorSpacingSize;)V
public static fun textDisplay (Ldev/kord/rest/builder/message/MessageBuilder;Ljava/lang/String;)V
}

public final class dev/kord/rest/builder/message/MessageBuilderJvmKt {
Expand All @@ -2302,11 +2332,13 @@ public final class dev/kord/rest/builder/message/MessageBuilderKt {
public static final fun addFile (Ldev/kord/rest/builder/message/MessageBuilder;Ljava/lang/String;Lio/ktor/client/request/forms/ChannelProvider;Lkotlin/jvm/functions/Function1;)Ldev/kord/rest/NamedFile;
public static final fun allowedMentions (Ldev/kord/rest/builder/message/MessageBuilder;Lkotlin/jvm/functions/Function1;)V
public static synthetic fun allowedMentions$default (Ldev/kord/rest/builder/message/MessageBuilder;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
public static final fun container (Ldev/kord/rest/builder/message/MessageBuilder;Lkotlin/jvm/functions/Function1;)V
public static final fun embed (Ldev/kord/rest/builder/message/MessageBuilder;Lkotlin/jvm/functions/Function1;)V
public static final fun messageFlags (Ldev/kord/rest/builder/message/MessageBuilder;Lkotlin/jvm/functions/Function1;)V
}

public abstract class dev/kord/rest/builder/message/create/AbstractMessageCreateBuilder : dev/kord/rest/builder/message/create/MessageCreateBuilder {
public fun addComponent (Ldev/kord/rest/builder/component/ContainerComponentBuilder;)V
public fun addFile (Ljava/lang/String;Lio/ktor/client/request/forms/ChannelProvider;)Ldev/kord/rest/NamedFile;
public final fun getAllowedMentions ()Ldev/kord/rest/builder/message/AllowedMentionsBuilder;
public final fun getAttachments ()Ljava/util/List;
Expand All @@ -2318,6 +2350,7 @@ public abstract class dev/kord/rest/builder/message/create/AbstractMessageCreate
public final fun getSuppressEmbeds ()Ljava/lang/Boolean;
public final fun getSuppressNotifications ()Ljava/lang/Boolean;
public final fun getTts ()Ljava/lang/Boolean;
public fun separator (Ldev/kord/common/entity/SeparatorSpacingSize;)V
public final fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V
public final fun setAttachments (Ljava/util/List;)V
public final fun setComponents (Ljava/util/List;)V
Expand All @@ -2327,6 +2360,7 @@ public abstract class dev/kord/rest/builder/message/create/AbstractMessageCreate
public final fun setSuppressEmbeds (Ljava/lang/Boolean;)V
public final fun setSuppressNotifications (Ljava/lang/Boolean;)V
public final fun setTts (Ljava/lang/Boolean;)V
public fun textDisplay (Ljava/lang/String;)V
}

public final class dev/kord/rest/builder/message/create/FollowupMessageCreateBuilder : dev/kord/rest/builder/message/create/AbstractMessageCreateBuilder, dev/kord/rest/builder/RequestBuilder {
Expand Down Expand Up @@ -2367,7 +2401,10 @@ public abstract interface class dev/kord/rest/builder/message/create/MessageCrea
}

public final class dev/kord/rest/builder/message/create/MessageCreateBuilder$DefaultImpls {
public static fun addComponent (Ldev/kord/rest/builder/message/create/MessageCreateBuilder;Ldev/kord/rest/builder/component/ContainerComponentBuilder;)V
public static fun addFile (Ldev/kord/rest/builder/message/create/MessageCreateBuilder;Ljava/lang/String;Lio/ktor/client/request/forms/ChannelProvider;)Ldev/kord/rest/NamedFile;
public static fun separator (Ldev/kord/rest/builder/message/create/MessageCreateBuilder;Ldev/kord/common/entity/SeparatorSpacingSize;)V
public static fun textDisplay (Ldev/kord/rest/builder/message/create/MessageCreateBuilder;Ljava/lang/String;)V
}

public final class dev/kord/rest/builder/message/create/UpdateMessageInteractionResponseCreateBuilder : dev/kord/rest/builder/message/create/AbstractMessageCreateBuilder, dev/kord/rest/builder/RequestBuilder {
Expand Down Expand Up @@ -2415,6 +2452,7 @@ public final class dev/kord/rest/builder/message/create/WebhookMessageCreateBuil
}

public abstract class dev/kord/rest/builder/message/modify/AbstractMessageModifyBuilder : dev/kord/rest/builder/message/modify/MessageModifyBuilder {
public fun addComponent (Ldev/kord/rest/builder/component/ContainerComponentBuilder;)V
public fun addFile (Ljava/lang/String;Lio/ktor/client/request/forms/ChannelProvider;)Ldev/kord/rest/NamedFile;
public final fun getAllowedMentions ()Ldev/kord/rest/builder/message/AllowedMentionsBuilder;
public final fun getAttachments ()Ljava/util/List;
Expand All @@ -2424,13 +2462,15 @@ public abstract class dev/kord/rest/builder/message/modify/AbstractMessageModify
public final fun getFiles ()Ljava/util/List;
public final fun getFlags ()Ldev/kord/common/entity/MessageFlags;
public final fun getSuppressEmbeds ()Ljava/lang/Boolean;
public fun separator (Ldev/kord/common/entity/SeparatorSpacingSize;)V
public final fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V
public final fun setAttachments (Ljava/util/List;)V
public final fun setComponents (Ljava/util/List;)V
public final fun setContent (Ljava/lang/String;)V
public final fun setEmbeds (Ljava/util/List;)V
public final fun setFlags (Ldev/kord/common/entity/MessageFlags;)V
public final fun setSuppressEmbeds (Ljava/lang/Boolean;)V
public fun textDisplay (Ljava/lang/String;)V
}

public final class dev/kord/rest/builder/message/modify/FollowupMessageModifyBuilder : dev/kord/rest/builder/message/modify/AbstractMessageModifyBuilder, dev/kord/rest/builder/RequestBuilder {
Expand All @@ -2449,7 +2489,10 @@ public abstract interface class dev/kord/rest/builder/message/modify/MessageModi
}

public final class dev/kord/rest/builder/message/modify/MessageModifyBuilder$DefaultImpls {
public static fun addComponent (Ldev/kord/rest/builder/message/modify/MessageModifyBuilder;Ldev/kord/rest/builder/component/ContainerComponentBuilder;)V
public static fun addFile (Ldev/kord/rest/builder/message/modify/MessageModifyBuilder;Ljava/lang/String;Lio/ktor/client/request/forms/ChannelProvider;)Ldev/kord/rest/NamedFile;
public static fun separator (Ldev/kord/rest/builder/message/modify/MessageModifyBuilder;Ldev/kord/common/entity/SeparatorSpacingSize;)V
public static fun textDisplay (Ldev/kord/rest/builder/message/modify/MessageModifyBuilder;Ljava/lang/String;)V
}

public final class dev/kord/rest/builder/message/modify/MessageModifyBuilderKt {
Expand Down
Loading

0 comments on commit 74cd4d8

Please sign in to comment.