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

commonMain.flags._allFlags.kt Maven / Gradle / Ivy

package org.kodein.emoji.flags

import org.kodein.emoji.Emoji
import org.kodein.emoji.EmojiFinder
import org.kodein.emoji.flags.flag.*
import org.kodein.emoji.flags.country_flag.*
import org.kodein.emoji.flags.subdivision_flag.*


internal fun EmojiFinder.addAllFlags() {
    addAllFlag()
    addAllCountryFlag()
    addAllSubdivisionFlag()
}

internal suspend fun SequenceScope.yieldAllFlags() {
    yieldAllFlag()
    yieldAllCountryFlag()
    yieldAllSubdivisionFlag()
}

internal val countFlags = 269

/**
 * All Emoji of the Flags group.
*/
public fun Emoji.Companion.sequenceFlags(): Sequence =
    sequence { yieldAllFlags() }

/**
 * All Emoji of the Flags group.
 *
 * 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.allFlags(): List =
    ArrayList(countFlags).also { list -> sequenceFlags().forEach { list.add(it) } }

internal fun allFlagsSubgroups(): Map List> =
    mapOf(
        "flag" to { Emoji.listFlag() },
        "country_flag" to { Emoji.listCountryFlag() },
        "subdivision_flag" to { Emoji.listSubdivisionFlag() },
    )




© 2015 - 2025 Weber Informatics LLC | Privacy Policy