seedfaker-core 0.4.0-alpha.1

Core library for seedfaker — deterministic synthetic generator for realistic, correlated, and noisy test records
Documentation
use crate::ctx::GenContext;

const EMOJI: &[&str] = &[
    // smileys
    "\u{1F600}",
    "\u{1F602}",
    "\u{1F923}",
    "\u{1F60A}",
    "\u{1F60D}",
    "\u{1F970}",
    "\u{1F618}",
    "\u{1F60E}",
    "\u{1F929}",
    "\u{1F973}",
    "\u{1F60F}",
    "\u{1F612}",
    "\u{1F61E}",
    "\u{1F614}",
    "\u{1F61F}",
    "\u{1F615}",
    "\u{1F641}",
    "\u{1F623}",
    "\u{1F616}",
    "\u{1F62B}",
    "\u{1F624}",
    "\u{1F621}",
    "\u{1F92C}",
    "\u{1F631}",
    "\u{1F628}",
    "\u{1F630}",
    "\u{1F625}",
    "\u{1F622}",
    "\u{1F62D}",
    "\u{1F633}",
    "\u{1F914}",
    "\u{1F92B}",
    "\u{1F925}",
    "\u{1F636}",
    "\u{1F610}",
    "\u{1F611}",
    "\u{1F62C}",
    "\u{1F644}",
    "\u{1F62F}",
    "\u{1F634}", // people
    "\u{1F44B}",
    "\u{1F91A}",
    "\u{270B}",
    "\u{1F596}",
    "\u{1F44C}",
    "\u{1F90C}",
    "\u{1F90F}",
    "\u{270C}\u{FE0F}",
    "\u{1F91E}",
    "\u{1F91F}",
    "\u{1F918}",
    "\u{1F919}",
    "\u{1F448}",
    "\u{1F449}",
    "\u{1F446}",
    "\u{1F447}",
    "\u{261D}\u{FE0F}",
    "\u{1F44D}",
    "\u{1F44E}",
    "\u{270A}",
    "\u{1F44A}",
    "\u{1F91B}",
    "\u{1F91C}",
    "\u{1F44F}",
    "\u{1F64C}",
    "\u{1F450}",
    "\u{1F932}",
    "\u{1F91D}",
    "\u{1F64F}",
    "\u{1F4AA}",
    // hearts & symbols
    "\u{2764}\u{FE0F}",
    "\u{1F9E1}",
    "\u{1F49B}",
    "\u{1F49A}",
    "\u{1F499}",
    "\u{1F49C}",
    "\u{1F5A4}",
    "\u{1F90D}",
    "\u{1F90E}",
    "\u{1F494}",
    "\u{1F4AF}",
    "\u{1F4A2}",
    "\u{1F4A5}",
    "\u{1F4AB}",
    "\u{1F4A6}",
    "\u{1F4A8}",
    "\u{1F525}",
    "\u{2B50}",
    "\u{1F31F}",
    "\u{2728}",
    "\u{26A1}",
    "\u{1F3AF}",
    "\u{1F3C6}",
    "\u{1F3EA}",
    "\u{1F3AD}",
    "\u{1F3A8}",
    "\u{1F3AC}",
    "\u{1F3AE}",
    "\u{1F3B2}",
    "\u{1F3B0}",
    // nature
    "\u{1F30D}",
    "\u{1F30E}",
    "\u{1F30F}",
    "\u{1F310}",
    "\u{1F5FA}\u{FE0F}",
    "\u{1F30B}",
    "\u{1F3D4}\u{FE0F}",
    "\u{1F30A}",
    "\u{1F308}",
    "\u{2600}\u{FE0F}",
    "\u{1F324}\u{FE0F}",
    "\u{26C5}",
    "\u{1F327}\u{FE0F}",
    "\u{26C8}\u{FE0F}",
    "\u{1F329}\u{FE0F}",
    "\u{2744}\u{FE0F}",
    "\u{1F32A}\u{FE0F}",
    "\u{1F32B}\u{FE0F}",
    "\u{1F32C}\u{FE0F}",
    "\u{1F300}",
    "\u{1F436}",
    "\u{1F431}",
    "\u{1F42D}",
    "\u{1F439}",
    "\u{1F430}",
    "\u{1F98A}",
    "\u{1F43B}",
    "\u{1F43C}",
    "\u{1F428}",
    "\u{1F42F}",
    "\u{1F981}",
    "\u{1F42E}",
    "\u{1F437}",
    "\u{1F438}",
    "\u{1F435}",
    "\u{1F414}",
    "\u{1F427}",
    "\u{1F426}",
    "\u{1F985}",
    "\u{1F989}",
    "\u{1F41D}",
    "\u{1F41B}",
    "\u{1F98B}",
    "\u{1F40C}",
    "\u{1F41E}",
    "\u{1F41C}",
    "\u{1F997}",
    "\u{1F577}\u{FE0F}",
    "\u{1F982}",
    "\u{1F422}",
    "\u{1F40D}",
    "\u{1F98E}",
    "\u{1F419}",
    "\u{1F991}",
    "\u{1F990}",
    "\u{1F99E}",
    "\u{1F980}",
    "\u{1F421}",
    "\u{1F420}",
    "\u{1F41F}",
    "\u{1F42C}",
    "\u{1F433}",
    "\u{1F40B}",
    "\u{1F988}",
    "\u{1F40A}",
    "\u{1F405}",
    "\u{1F406}",
    "\u{1F993}",
    "\u{1F98D}",
    "\u{1F9A7}", // food
    "\u{1F34E}",
    "\u{1F350}",
    "\u{1F34A}",
    "\u{1F34B}",
    "\u{1F34C}",
    "\u{1F349}",
    "\u{1F347}",
    "\u{1F353}",
    "\u{1FAD0}",
    "\u{1F348}",
    "\u{1F352}",
    "\u{1F351}",
    "\u{1F96D}",
    "\u{1F34D}",
    "\u{1F965}",
    "\u{1F95D}",
    "\u{1F345}",
    "\u{1F346}",
    "\u{1F951}",
    "\u{1F966}",
    "\u{1F33D}",
    "\u{1F336}\u{FE0F}",
    "\u{1FAD1}",
    "\u{1F952}",
    "\u{1F96C}",
    "\u{1F955}",
    "\u{1F9C4}",
    "\u{1F9C5}",
    "\u{1F954}",
    "\u{1F360}",
    "\u{1F355}",
    "\u{1F354}",
    "\u{1F35F}",
    "\u{1F32D}",
    "\u{1F37F}",
    "\u{1F9C2}",
    "\u{1F95A}",
    "\u{1F373}",
    "\u{1F9C8}",
    "\u{1F95E}",
    "\u{2615}",
    "\u{1F375}",
    "\u{1F9C3}",
    "\u{1F964}",
    "\u{1F37A}",
    "\u{1F37B}",
    "\u{1F942}",
    "\u{1F377}",
    "\u{1F378}",
    "\u{1F379}", // objects
    "\u{1F4F1}",
    "\u{1F4BB}",
    "\u{1F5A5}\u{FE0F}",
    "\u{1F5A8}\u{FE0F}",
    "\u{2328}\u{FE0F}",
    "\u{1F5B1}\u{FE0F}",
    "\u{1F4BE}",
    "\u{1F4BF}",
    "\u{1F4C0}",
    "\u{1F50C}",
    "\u{1F50B}",
    "\u{1F4E1}",
    "\u{1F52C}",
    "\u{1F52D}",
    "\u{1F4F7}",
    "\u{1F4F9}",
    "\u{1F3A5}",
    "\u{1F4FA}",
    "\u{1F4FB}",
    "\u{1F399}\u{FE0F}",
    "\u{1F514}",
    "\u{1F515}",
    "\u{1F4E2}",
    "\u{1F4E3}",
    "\u{1F3F3}\u{FE0F}",
    "\u{1F3F4}",
    "\u{1F6A9}",
    "\u{1F38C}",
    "\u{1F3C1}",
    "\u{1F511}",
    "\u{1F5DD}\u{FE0F}",
    "\u{1F512}",
    "\u{1F513}",
    "\u{1F50F}",
    "\u{1F510}",
    "\u{1F527}",
    "\u{1F528}",
    "\u{2692}\u{FE0F}",
    "\u{1F6E0}\u{FE0F}",
    "\u{2699}\u{FE0F}", // transport
    "\u{1F697}",
    "\u{1F695}",
    "\u{1F699}",
    "\u{1F68C}",
    "\u{1F68E}",
    "\u{1F3CE}\u{FE0F}",
    "\u{1F693}",
    "\u{1F691}",
    "\u{1F692}",
    "\u{1F690}",
    "\u{1F6FB}",
    "\u{1F69A}",
    "\u{1F69B}",
    "\u{1F69C}",
    "\u{1F3CD}\u{FE0F}",
    "\u{1F6F5}",
    "\u{1F6B2}",
    "\u{1F6F4}",
    "\u{1F6F9}",
    "\u{1F681}",
    "\u{2708}\u{FE0F}",
    "\u{1F6E9}\u{FE0F}",
    "\u{1F680}",
    "\u{1F6F8}",
    "\u{1F6A2}",
    "\u{26F5}",
    "\u{1F6A4}",
    "\u{1F6E5}\u{FE0F}",
    "\u{1F682}",
    "\u{1F686}",
    // flags
    "\u{1F1FA}\u{1F1F8}",
    "\u{1F1EC}\u{1F1E7}",
    "\u{1F1E9}\u{1F1EA}",
    "\u{1F1EB}\u{1F1F7}",
    "\u{1F1EF}\u{1F1F5}",
    "\u{1F1E8}\u{1F1F3}",
    "\u{1F1EE}\u{1F1F3}",
    "\u{1F1E7}\u{1F1F7}",
    "\u{1F1F7}\u{1F1FA}",
    "\u{1F1F0}\u{1F1F7}",
    "\u{1F1EA}\u{1F1F8}",
    "\u{1F1EE}\u{1F1F9}",
    "\u{1F1F3}\u{1F1F1}",
    "\u{1F1F5}\u{1F1F1}",
    "\u{1F1F9}\u{1F1F7}",
    "\u{1F1FA}\u{1F1E6}",
    "\u{1F1F8}\u{1F1EA}",
    "\u{1F1F3}\u{1F1F4}",
    "\u{1F1EB}\u{1F1EE}",
    "\u{1F1E9}\u{1F1F0}",
];

pub fn gen(ctx: &mut GenContext<'_>, buf: &mut String) {
    buf.push_str(EMOJI[ctx.rng.urange(0, EMOJI.len() - 1)]);
}