[no description]
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | Cargo.toml | 10 | ||||
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | src/lib.rs | 393 |
4 files changed, 406 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..96ef6c0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/target +Cargo.lock diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..bd93554 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "emoji" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +mindus = { version = "5.0.14", default-features = false } +phf = { version = "0.11.2", features = ["macros"] } diff --git a/README.md b/README.md new file mode 100644 index 0000000..32e9b58 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +maps mindstry emojis to discord emojis.
\ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..fad4783 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,393 @@ +/// map mindustry emojis +pub mod mindustry { + /// mindustry liquid, i.e gallium, water, oil + pub use mindus::fluid::Type as Fluid; + /// mindustry item, i.e copper, lead, silicon, phase fabric + pub use mindus::item::Type as Item; + + /// to discord emojis + pub static TO_DISCORD: phf::Map<char, &str> = phf::phf_map! { + '' => "<:launch_pad:1165059549477220382>", + '' => "<:surge_conveyor:1165056614835945542>", + '' => "<:pyratite_mixer:1164832608002256906>", + '' => "<:poly:1165060238341316720>", + '' => "<:vault:1165057825110761583>", + '' => "<:copper_wall_large:1164868430726430790>", + '' => "<:segment:1164869661591089163>", + '' => "<:ripple:1164869672458530816>", + '' => "<:hail:1164869685133717564>", + '' => "<:force_projector:1164868932440698891>", + '' => "<:distributor:1165056571445874798>", + '' => "<:message:1165059277409484820>", + '' => "<:naval_factory:1164846856094875738>", + '' => "<:liquid_source:1165056998862237857>", + '' => "<:impact_reactor:1165057397711179846>", + '' => "<:illuminator:1165057394418655311>", + '' => "<:melter:1164832622455824395>", + '' => "<:item_source:1165056586012700793>", + '' => "<:logic_processor:1165059269356433459>", + '' => "<:payload_source:1165055051648209008>", + '' => "<:phase_conduit:1165057015228407899>", + '' => "<:disassembler:1164832634598346813>", + '' => "<:minke:1165060225489981440>", + '' => "<:titanium_wall:1164868373335773184>", + '' => "<:plastanium_wall:1164868410379874404>", + '' => "<:scrap_wall_gigantic:1164868400410005545>", + '' => "<:bridge_conveyor:1165056566337220678>", + '' => "<:payload_loader:1165055042408165376>", + '' => "<:container:1165057808954310667>", + '' => "<:zenith:1165060268607418440>", + '' => "<:hyper_processor:1165059260837806110>", + '' => "<:phase_weaver:1164832617389113374>", + '' => "<:cyerce:1165060197996310618>", + '' => "<:world_cell:1165059286414659657>", + '' => "<:vela:1165060264958382081>", + '' => "<:liquid_container:1165056989135655034>", + '' => "<:scatter:1164869667295346732>", + '' => "<:liquid_void:1165057004889444402>", + '' => "<:payload_router:1165055049630748672>", + '' => "<:quad:1165060243500322967>", + '' => "<:memory_cell:1165059275572387921>", + '' => "<:salvo:1164869669224722432>", + '' => "<:liquid_router:1165056995783614574>", + '' => "<:wave:1164869646873280562>", + '' => "<:overdrive_dome:1164868924186316940>", + '' => "<:payload_void:1165055058988240906>", + '' => "<:meltdown:1164869678598979655>", + '' => "<:scrap_wall_huge:1164868397377527849>", + '' => "<:core_nucleus:1165057814801170583>", + '' => "<:tsunami:1164869649125605396>", + '' => "<:swarmer:1164869653357670480>", + '' => "<:cryofluid_mixer:1164832639807655988>", + '' => "<:oil_extractor:1165059446301536317>", + '' => "<:plated_conduit:1165057017388482660>", + '' => "<:pulverizer:1164832611500310548>", + '' => "<:rotary_pump:1165057025089228891>", + '' => "<:surge_wall:1164868390024921148>", + '' => "<:duct:1165056574872633354>", + '' => "<:micro_processor:1165059281087889479>", + '' => "<:nova:1165060232070828062>", + '' => "<:water_extractor:1165059449917018143>", + '' => "<:interplanetary_accelerator:1165059547526860950>", + '' => "<:fortress:1165060214580580352>", + '' => "<:mega:1165060222956621847>", + '' => "<:inverted_sorter:1165056577020121190>", + '' => "<:air_factory:1164846858871513148>", + '' => "<:rtg_generator:1165057406506651708>", + '' => "<:thruster:1164868368235507754>", + '' => "<:ground_factory:1164846860800892938>", + '' => "<:copper_wall:1164868434006392842>", + '' => "<:junction:1165056592169926677>", + '' => "<:payload_conveyor:1165055040411668500>", + '' => "<:multiplicative_reconstructor:1164846850013134920>", + '' => "<:pulsar:1165060241394765834>", + '' => "<:phase_conveyor:1165056600520802305>", + '' => "<:conduit:1165056982974210179>", + '' => "<:surge_wall_large:1164868386929512509>", + '' => "<:tetrative_reconstructor:1164846844053028945>", + '' => "<:bryde:1165060187229519963>", + '' => "<:unloader:1165057822791307344>", + '' => "<:armored_conveyor:1165056561492803644>", + '' => "<:reign:1165060249892433940>", + '' => "<:toxopid:1165060263368736920>", + '' => "<:scepter:1165060256276164668>", + '' => "<:arkyid:1165060180455739535>", + '' => "<:canvas:1165059258124087356>", + '' => "<:core_shard:1165057818148225064>", + '' => "<:item_void:1165056589275865168>", + '' => "<:corvus:1165060189876125806>", + '' => "<:combustion_generator:1165057385799352321>", + '' => "<:power_node_large:1165057403176358018>", + '' => "<:plastanium_compressor:1164832614096576555>", + '' => "<:battery:1165057379935727756>", + '' => "<:silicon_smelter:1164832599328444447>", + '' => "<:crawler:1165060193940422786>", + '' => "<:antumbra:1165060178392129698>", + '' => "<:scorch:1164869663663071282>", + '' => "<:mend_projector:1164868930616180746>", + '' => "<:logic_display:1165059267267674224>", + '' => "<:router:1165056609395949638>", + '' => "<:liquid_junction:1165056991853559868>", + '' => "<:dagger:1165060204858183690>", + '' => "<:cyclone:1164869703437668392>", + '' => "<:differential_generator:1165057389242896395>", + '' => "<:payload_unloader:1165055055473410048>", + '' => "<:mono:1165060228618928178>", + '' => "<:world_message:1165059289648480297>", + '' => "<:plastanium_conveyor:1165056604174045277>", + '' => "<:conveyor:1165056569621369013>", + '' => "<:foreshadow:1164869696064073760>", + '' => "<:thermal_generator:1165057421899726968>", + '' => "<:mender:1164868927264915466>", + '' => "<:fuse:1164869692591198208>", + '' => "<:overdrive_projector:1164868922135289996>", + '' => "<:switch:1165059283331862620>", + '' => "<:battery_large:1165057382066434149>", + '' => "<:graphite_press:1164832630643105853>", + '' => "<:memory_bank:1165059272426668102>", + '' => "<:incinerator:1164832628642431037>", + '' => "<:oct:1165060234310598788>", + '' => "<:solar_panel:1165057408616366101>", + '' => "<:armored_duct:1165056563300544523>", + '' => "<:arc:1164869705882943580>", + '' => "<:retusa:1165060254183206942>", + '' => "<:quasar:1165060246646046740>", + '' => "<:thorium_wall:1164868384018665552>", + '' => "<:overflow_gate:1165056597467332678>", + '' => "<:power_node:1165057399678308383>", + '' => "<:blast_drill:1165059437363474504>", + '' => "<:kiln:1164832625547018251>", + '' => "<:mass_driver:1165056595466649620>", + '' => "<:separator:1164832606160961606>", + '' => "<:liquid_tank:1165057003027181649>", + '' => "<:mechanical_drill:1165059443264864307>", + '' => "<:core_foundation:1165057811387011203>", + '' => "<:impulse_pump:1165056986040250448>", + '' => "<:titanium_wall_large:1164868370177466388>", + '' => "<:sei:1165060259719680160>", + '' => "<:atrax:1165060183593074710>", + '' => "<:gamma:1165060216719683664>", + '' => "<:shield_projector:1164868919903928330>", + '' => "<:exponential_reconstructor:1164846847148445716>", + '' => "<:mechanical_pump:1165057009620635749>", + '' => "<:scrap_wall:1164868403593482281>", + '' => "<:horizon:1165060220070932551>", + '' => "<:payload_mass_driver:1165055046216585226>", + '' => "<:surge_tower:1165057419894853725>", + '' => "<:phase_wall_large:1164868414100213760>", + '' => "<:door_large:1164868422555926538>", + '' => "<:bridge_conduit:1165056979702657024>", + '' => "<:titanium_conveyor:1165056617809715210>", + '' => "<:sorter:1165056611480502322>", + '' => "<:thorium_reactor:1165057424915431474>", + '' => "<:cultivator:1164832636452216922>", + '' => "<:phase_wall:1164868417803796490>", + '' => "<:coal_centrifuge:1164832643246989333>", + '' => "<:thorium_wall_large:1164868375353249793>", + '' => "<:flare:1165060210944127067>", + '' => "<:multi_press:1164832620522242068>", + '' => "<:lancer:1164869681472094219>", + '' => "<:world_processor:1165059291473006612>", + '' => "<:duo:1164869699817967616>", + '' => "<:plastanium_wall_large:1164868405661278229>", + '' => "<:diode:1165057391172272188>", + '' => "<:underflow_gate:1165056619873320981>", + '' => "<:pneumatic_drill:1165059448058953728>", + '' => "<:pulse_conduit:1165057021205303336>", + '' => "<:eclipse:1165060207517372456>", + '' => "<:steam_generator:1165057415658614795>", + '' => "<:laser_drill:1165059440077189140>", + '' => "<:blast_mixer:1164832645126041600>", + '' => "<:door:1164868425294823524>", + '' => "<:parallax:1164869674568261683>", + '' => "<:scrap_wall_large:1164868391950106704>", + '' => "<:spectre:1164869658365673512>", + '' => "<:surge_smelter:1164832648426950706>", + '' => "<:solar_panel_large:1165057412126998649>", + '' => "<:silicon_crucible:1164832602696462346>", + '' => "<:large_logic_display:1165059264230981702>", + '' => "<:spore_press:1164832597411647508>", + '' => "<:additive_reconstructor:1164846854006120551>", + + // icon section + '' => "<:down:1182120158072938577>", + '' => "<:chart_bar:1182121860008259594>", + '' => "<:star:1182120776070070382>", + '' => "<:wrench:1174277587493715979>", + '' => "<:left:1182119706392535131>", + '' => "<:ok:1182120559916625971>", + '' => "<:right:1182119750155915264>", + '' => "<:resize:1182120953245868152>", + '' => "<:home:1182120453108670574>", + '' => "<:image:1182120708227223634>", + '' => "<:github_square:1182121451655004221>", + '' => "<:up:1182120109221875802>", + '⚠' => "<:warning:1182119952048726066>", + '' => "<:file_image:1182121569410097252>", + '' => "<:file_text:1182132951748722790>", + '' => "<:lock_open:1182132973299048518>", + '' => "<:upload:1182133085148561498>", + '' => "<:diagonal:1182128919843975290>", + '' => "<:trello:1182133061236834375>", + '' => "<:export:1182128954132402257>", + '' => "<:command_attack:1182128907856662528>", + '' => "<:flip_y:1182128973673672805>", + '' => "<:planet:1182132980899139684>", + '' => "<:production:1182132992911613963>", + '' => "<:save:1182133023068655737>", + '' => "<:github:1182128985820381204>", + '' => "<:box:1182128897064718386>", + '' => "<:play:1182129079869251614>", + '' => "<:eraser:1182128944628113418>", + '' => "<:command_rally:1182128911082082434>", + '' => "<:google_play:1182128988064329768>", + '' => "<:editor:1182132940302454784>", + '' => "<:redo:1182133008384413736>", + '' => "<:layers:1182129017185378326>", + '' => "<:defense:1182132929615380510>", + '' => "<:lock:1182132966705598484>", + '' => "<:undo:1182133073454825512>", + '' => "<:discord:1182124785371729990>", + '' => "<:refresh:1182133010586423387>", + '' => "<:down_open:1182128928031244488>", + '' => "<:units:1182133078022422579>", + '' => "<:survival:1182133046233809016>", + '' => "<:left_open:1182129022906413188>", + '' => "<:info:1182132960934252564>", + '' => "<:host:1182129003256107139>", + '' => "<:hammer:1182128999351201932>", + '' => "<:edit:1182128933618061352>", + '' => "<:admin:1182128872435749005>", + '' => "<:terminal:1182133050587484231>", + '' => "<:pick:1182132978151866409>", + '' => "<:distribution:1182128923023261716>", + '' => "<:android:1182128875950592150>", + '' => "<:download:1182132934996656189>", + '' => "<:move:1182129052744687656>", + '' => "<:turret:1182133068123873320>", + '' => "<:itchio:1182129011950878770>", + '' => "<:filters:1182128967600312381>", + '' => "<:spray:1182133032493252689>", + '' => "<:trash:1182133055008284814>", + '' => "<:power:1182132985559003136>", + '' => "<:right_open:1182133015036575745>", + '' => "<:pause:1182129067697373298>", + '' => "<:chat:1182128903528124636>", + '' => "<:reddit:1182133001044361307>", + '' => "<:file:1182132954382737468>", + '' => "<:players:1182129203420864557>", + '' => "<:filter:1182128963062091796>", + '' => "<:list:1182123020240830534>", + '' => "<:settings:1182133030073151508>", + '' => "<:zoom:1182133094090809406>", + '' => "<:liquid:1182129034650451969>", + '' => "<:tree:1182133057138987148>", + '' => "<:cancel:1182128899166064720>", + '' => "<:logic:1182129040212119592>", + '' => "<:none:1182129058105012325>", + '' => "<:eye:1182132944614195332>", + '' => "<:copy:1182132924158574592>", + '' => "<:add:1182128870678335538>", + '' => "<:attack:1182128880434298900>", + '' => "<:pvp:1182132995130400789>", + '' => "<:plane:1182129077495287818>", + '' => "<:up_open:1182133079997960282>", + '' => "<:fill:1182128958809055372>", + '' => "<:exit:1182128949497712811>", + '' => "<:crafting:1182128916631146566>", + '' => "<:line:1182129027180404758>", + '' => "<:eye_off:1182132947478917150>", + '' => "<:paste:1182129062504841236>", + '' => "<:waves:1182133091570040873>", + '' => "<:book:1182128890496438372>", + '' => "<:flip_x:1182128969743609966>", + '' => "<:book_open:1182128882829242389>", + '' => "<:folder:1182128977893142600>", + '' => "<:info_circle:1182129007496548442>", + '' => "<:effect:1182128939150360576>", + '' => "<:grid:1182128995509219399>", + '' => "<:steam:1182133038054912020>", + '' => "<:link:1182129032196784199>", + '' => "<:pencil:1182129072445337692>", + '' => "<:map:1182129048135155773>", + '' => "<:rotate:1182133018400399521>", + + '' => item(Item::Tungsten), + '' => item(Item::Titanium), + '' => item(Item::Thorium), + '' => item(Item::SurgeAlloy), + '' => item(Item::SporePod), + '' => item(Item::Silicon), + '' => item(Item::Scrap), + '' => item(Item::Sand), + '' => item(Item::Pyratite), + '' => item(Item::Plastanium), + '' => item(Item::PhaseFabric), + '' => item(Item::Metaglass), + '' => item(Item::Lead), + '' => item(Item::Graphite), + '' => item(Item::FissileMatter), + '' => item(Item::DormantCyst), + '' => item(Item::Copper), + '' => item(Item::Coal), + '' => item(Item::Carbide), + '' => item(Item::BlastCompound), + '' => item(Item::Beryllium), + '' => item(Item::Oxide), + '' => fluid(Fluid::Water), + '' => fluid(Fluid::Slag), + '' => fluid(Fluid::Oil), + '' => fluid(Fluid::Cryofluid), + '' => fluid(Fluid::Neoplasm), + '' => fluid(Fluid::Arkycite), + '' => fluid(Fluid::Gallium), + '' => fluid(Fluid::Ozone), + '' => fluid(Fluid::Hydrogen), + '' => fluid(Fluid::Nitrogen), + '' => fluid(Fluid::Cyanogen), + }; + + /// Returns the emoji of a [`Fluid`] + pub const fn fluid(f: Fluid) -> &'static str { + match f { + Fluid::Water => "<:water:1144220582204944434>", + Fluid::Slag => "<:slag:1144220603671396352>", + Fluid::Oil => "<:oil:1144220637448118353>", + Fluid::Cryofluid => "<:cryofluid:1144220686018154599>", + Fluid::Neoplasm => "<:neoplasm:1144220645794791505>", + Fluid::Arkycite => "<:arkycite:1144220710106038383>", + Fluid::Gallium => "<:gallium:1144220668238516264>", + Fluid::Ozone => "<:ozone:1144220628627497091>", + Fluid::Hydrogen => "<:hydrogen:1144220658746798090>", + Fluid::Nitrogen => "<:nitrogen:1144220641160077363>", + Fluid::Cyanogen => "<:cyanogen:1144220681945489408>", + } + } + + /// Returns the emoji of a [`Item`] + pub const fn item(i: Item) -> &'static str { + match i { + Item::Tungsten => "<:tungsten:1144220586382458970>", + Item::Titanium => "<:titanium:1144220588978749551>", + Item::Thorium => "<:thorium:1144220593068191784>", + Item::SurgeAlloy => "<:surgealloy:1144220597484789822>", + Item::SporePod => "<:sporepod:1144220601205149777>", + Item::Silicon => "<:silicon:1144220607710502922>", + Item::Scrap => "<:scrap:1144220611531505704>", + Item::Sand => "<:sand:1144220613880315934>", + Item::Pyratite => "<:pyratite:1144220617319657572>", + Item::Plastanium => "<:plastanium:1144220622403153971>", + Item::PhaseFabric => "<:phasefabric:1144220626224156794>", + Item::Metaglass => "<:metaglass:1144220649901019206>", + Item::Lead => "<:lead:1144220654686699570>", + Item::Graphite => "<:graphite:1144220661137551400>", + Item::FissileMatter => "<:fissilematter:1144220673670131742>", + Item::DormantCyst => "<:dormantcyst:1144220677994446928>", + Item::Copper => "<:copper:1144220690216648704>", + Item::Coal => "<:coal:1144220692729036800>", + Item::Carbide => "<:carbide:1144220696927555584>", + Item::BlastCompound => "<:blastcompound:1144220701671305319>", + Item::Beryllium => "<:beryllium:1144220705739788288>", + Item::Oxide => "<:oxide:1144220632746295316>", + } + } + + /// "fixes" mindustry emojis with discord emojis + /// ``` + /// assert_eq!( + /// emoji::mindustry::to_discord("the will output many /s"), + /// "the <:spore_press:1164832597411647508> will output many <:sporepod:1144220601205149777>/s" + /// ); + /// ``` + pub fn to_discord(s: &str) -> String { + let mut o = String::with_capacity(s.len()); + for ch in s.chars() { + if let Some(mtch) = TO_DISCORD.get(&ch) { + o.push_str(mtch); + } else { + o.push(ch); + } + } + o + } +} |