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

commonMain.objects.writing._allWriting.kt Maven / Gradle / Ivy

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

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


internal fun EmojiFinder.addAllWriting() {
    add(intArrayOf(0x270f, 0xfe0f), _Pencil)
    add(intArrayOf(0x270f), _Pencil)
    add(intArrayOf(0x2712, 0xfe0f), _BlackNib)
    add(intArrayOf(0x2712), _BlackNib)
    add(intArrayOf(0x1f58b, 0xfe0f), _FountainPen)
    add(intArrayOf(0x1f58b), _FountainPen)
    add(intArrayOf(0x1f58a, 0xfe0f), _Pen)
    add(intArrayOf(0x1f58a), _Pen)
    add(intArrayOf(0x1f58c, 0xfe0f), _Paintbrush)
    add(intArrayOf(0x1f58c), _Paintbrush)
    add(intArrayOf(0x1f58d, 0xfe0f), _Crayon)
    add(intArrayOf(0x1f58d), _Crayon)
    add(intArrayOf(0x1f4dd), _Memo)
}

internal suspend fun SequenceScope.yieldAllWriting() {
    yield(_Pencil)
    yield(_BlackNib)
    yield(_FountainPen)
    yield(_Pen)
    yield(_Paintbrush)
    yield(_Crayon)
    yield(_Memo)
}

internal val countWriting = 7

/**
 * All Emoji of the Objects: writing subgroup.
*/
public fun Emoji.Companion.sequenceWriting(): Sequence =
    sequence { yieldAllWriting() }

/**
 * All Emoji of the Objects: writing 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.listWriting(): List =
    ArrayList(countWriting).also { list -> sequenceWriting().forEach { list.add(it) } }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy