All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.objects.mail._allMail.kt Maven / Gradle / Ivy

There is a newer version: 2.2.0
Show newest version
package org.kodein.emoji.objects.mail

import org.kodein.emoji.Emoji
import org.kodein.emoji.EmojiFinder
import org.kodein.emoji.addSt1Variations
import org.kodein.emoji.addSt2Variations


internal fun EmojiFinder.addAllMail() {
    add(intArrayOf(0x2709, 0xfe0f), _Envelope)
    add(intArrayOf(0x2709), _Envelope)
    add(intArrayOf(0x1f4e7), _EMail)
    add(intArrayOf(0x1f4e8), _IncomingEnvelope)
    add(intArrayOf(0x1f4e9), _EnvelopeWithArrow)
    add(intArrayOf(0x1f4e4), _OutboxTray)
    add(intArrayOf(0x1f4e5), _InboxTray)
    add(intArrayOf(0x1f4e6), _Package)
    add(intArrayOf(0x1f4eb), _ClosedMailboxWithRaisedFlag)
    add(intArrayOf(0x1f4ea), _ClosedMailboxWithLoweredFlag)
    add(intArrayOf(0x1f4ec), _OpenMailboxWithRaisedFlag)
    add(intArrayOf(0x1f4ed), _OpenMailboxWithLoweredFlag)
    add(intArrayOf(0x1f4ee), _Postbox)
    add(intArrayOf(0x1f5f3, 0xfe0f), _BallotBoxWithBallot)
    add(intArrayOf(0x1f5f3), _BallotBoxWithBallot)
}

internal suspend fun SequenceScope.yieldAllMail() {
    yield(_Envelope)
    yield(_EMail)
    yield(_IncomingEnvelope)
    yield(_EnvelopeWithArrow)
    yield(_OutboxTray)
    yield(_InboxTray)
    yield(_Package)
    yield(_ClosedMailboxWithRaisedFlag)
    yield(_ClosedMailboxWithLoweredFlag)
    yield(_OpenMailboxWithRaisedFlag)
    yield(_OpenMailboxWithLoweredFlag)
    yield(_Postbox)
    yield(_BallotBoxWithBallot)
}

internal val countMail = 13

/**
 * All Emoji of the Objects: mail subgroup.
*/
public fun Emoji.Companion.sequenceMail(): Sequence =
    sequence { yieldAllMail() }

/**
 * All Emoji of the Objects: mail subgroup.
 *
 * WARNING: This can be quite heavy to construct.
 * This method should be called in background and its result should be cached.
*/
public fun Emoji.Companion.listMail(): List =
    ArrayList(countMail).also { list -> sequenceMail().forEach { list.add(it) } }

@Deprecated("Renamed listMail.", replaceWith = ReplaceWith("listMail()"), level = DeprecationLevel.WARNING)
public fun Emoji.Companion.allMail(): List =
    listMail()




© 2015 - 2025 Weber Informatics LLC | Privacy Policy