rsocket-kotlin icon indicating copy to clipboard operation
rsocket-kotlin copied to clipboard

Redesign MimeType

Open whyoleg opened this issue 8 months ago • 0 comments

Main changes:

  • rename to RSocketMimeType
  • move to root package
  • use nested classes

POC API:

public sealed interface RSocketMimeType {
    public sealed interface WithName : RSocketMimeType {
        public val name: String
    }

    public sealed interface WithIdentifier : RSocketMimeType {
        public val identifier: Byte
    }

    public sealed interface WellKnown : WithIdentifier, WithName

    public companion object {
        public val ApplicationAvro: WellKnown
        public val ApplicationCbor: WellKnown
    }
}

public fun RSocketMimeType(name: String): RSocketMimeType.WithName
public fun RSocketMimeType(identifier: Byte): RSocketMimeType.WithIdentifier

Similar API design should be done to auth and metadata types

whyoleg avatar Mar 11 '25 22:03 whyoleg