Coder Social home page Coder Social logo

emojis's Introduction

I'm Ross 👋



🌱 My projects

TOOLS

  • aq - Extend jq for any data format
  • cargo-onedoc - 📝 Generate your README.md from Rust doc comments
  • dotfiles - 🔧 Install packages and my dotfiles on a new system
  • install - Install a Rust crate from a GitHub release
  • kb-remap - ⌨️ Tool to remap macOS keyboard keys
  • sheldon - :bowtie: Fast, configurable, shell plugin manager

RUST LIBRARIES

  • casual - Simple Rust crate for parsing user input
  • complexity - Calculate cognitive complexity of Rust code
  • constcat - 🐱 concat! with support for const variables and expressions
  • emojis - ✨ Lookup and iterate over emoji names, shortcodes, and groups
  • fmutex - Provides mutual exclusion on a file using flock(2)
  • goldie - 🌟 Simple golden file testing for Rust
  • itermore - 🤸 More iterator adaptors
  • pulldown-cmark-toc - Generate a table of contents from a Markdown document
  • radiotap - A parser for the radiotap capture format
  • regex-macro - Only compile a regex once, abstracted
  • upon - 📌 A lightweight and powerful template engine for Rust
  • vectrix - 🏹 Stack-allocated, constant-size, matrix type implemented with const generics

PYTHON LIBRARIES

  • pycases - 💼 A case conversion library with Unicode support

GO LIBRARIES

  • cases - 💼 A case conversion library for Go with Unicode support
  • fudge - 🍦 Oh Fudge! A straight-forward error library for Go

ALFRED WORKFLOWS

GITHUB ACTIONS

  • setup-crate - 📦 GitHub Action to install a Rust binary
  • setup-just - 🤖 GitHub Action to install the just command runner

FUN

  • advent - 🎄 My Advent of Code solutions
  • intcode - 🎁 Assembler and runner for the Intcode computer from 🎄 Advent of Code 2019

emojis's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

emojis's Issues

`get` with HashMap

Thanks for creating this up to date library. I want to use this to check if a str is an Emoji. I am currently calling the get method and check if it returns Some.

I noticed there is a loop to determine if the unicode is an emoji. I was wondering if it wouldn't be a lot quicker if there is another static (generated) HashMap<Unicode, Emoji> to reach O(1) lookup time. I am not sure how Emoji's are encoded, so I am not sure if this is possible.

pub fn get(s: &str) -> Option<&'static Emoji> {

Skin tone and gendered emojis

Skin tone emojis can be looked up but it will still return the generic version of the emoji. It would be nice to be able to be able to specify which skin tone is wanted.

Handle emojis with multiple skin tones better

At the moment we currently just add these emojis to the variations but we should return them from .skin_tones().

Most emojis with skin tones have 6 variations but there are some with 26, for example 👩🏿‍❤️‍👨🏼 kinds of emojis.

Questions:

  • What should .skin_tone() return?
  • What should with_skin_tone() do in this case?
  • Is there a way to make the above ones use multiple skin tones?

Question: Support for "banned" or unsupported emoji's per OS.

Different systems have more or less emoji based on intentional business-political decisions (like removing a gun emoji etc). Particularly on windows a vast majority of emojis do not render. Is it currently possible to obtain a OS "supported" list of emoji within the crate and if not, would this be something I could help get added if you think it'd be useful? For us it seems more logical than maintaining a list of unsupported emojis outside of the crate.

Expose emoji versions

This would make it easy to filter out unsupported emojis. Example API:

use emojis::Version;

let year2020 = Version::new(13, 1);

emojis::iter().filter(|emoji| emoji.version() <= year2020)

Publish emoji fields

Hello, and thank you for this crate; I've found it very useful. I would find it rather helpful to have some of the fields in the Emoji struct to be public, such as the variations and skin tones, either by making the fields themselves public or adding getter methods for them. Sorry if I've missed an obvious way of doing this, or if there's a reason why these fields are private.

Thanks for your time

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.