diff --git a/src/data/it/database.rs b/src/data/it/database.rs new file mode 100644 index 0000000..ac09555 --- /dev/null +++ b/src/data/it/database.rs @@ -0,0 +1,22 @@ +use crate::{data::datetime::unix::unix_ts_gen, utils::seeder::{self, gen_range}}; +use wasm_bindgen::prelude::*; + +#[wasm_bindgen] +pub fn mongodb_objectid() -> String { + // 6359388c80616b1fc6d7ec71 parts: + // 6359388c -- epoc timestamp 1666791564 4 bytes + // 80616b1fc6 -- random value generated once per process. 551390224326 5 bytes + // d7ec71 -- incrementing counter which starts from random value (ID) 14150769 3 bytes + + let min: u64 = 4294967296; + let max: u64 = 1099511627776; + let rand = seeder::gen_range(min..max); + + let min = 65536; + let max = 16777216; + let counter = seeder::gen_range(min..max); + + let ts = unix_ts_gen(); + + format!("{:02x}{:02x}{:02x}", ts.1, rand, counter) +} \ No newline at end of file diff --git a/src/data/it/mod.rs b/src/data/it/mod.rs index 7e53806..90c9e78 100644 --- a/src/data/it/mod.rs +++ b/src/data/it/mod.rs @@ -8,3 +8,4 @@ pub mod macosx_versions; pub mod operating_systems; pub mod programming_languages; pub mod windows_versions; +pub mod database; diff --git a/src/locales/en/database/database.rs b/src/locales/en/database/database.rs new file mode 100644 index 0000000..466326f --- /dev/null +++ b/src/locales/en/database/database.rs @@ -0,0 +1,89 @@ +use crate::{data::datetime::unix::unix_ts_gen, utils::seeder::{self, gen_range}}; +use wasm_bindgen::prelude::*; + +#[wasm_bindgen] +pub fn collation() -> String { + EN_COLLATION[seeder::gen_range(0..EN_COLLATION_LEN)].to_string() +} + +#[wasm_bindgen] +pub fn column() -> String { + EN_COLUMN[seeder::gen_range(0..EN_COLUMN_LEN)].to_string() +} + +#[wasm_bindgen] +pub fn engine() -> String { + EN_ENGINE[seeder::gen_range(0..EN_ENGINE_LEN)].to_string() +} + +#[wasm_bindgen] +pub fn column_type() -> String { + EN_COLUMN_TYPE[seeder::gen_range(0..EN_COLUMN_TYPE_LEN)].to_string() +} + +static EN_COLLATION: [&'static str; 7] = [ + "utf8_unicode_ci", + "utf8_general_ci", + "utf8_bin", + "ascii_bin", + "ascii_general_ci", + "cp1250_bin", + "cp1250_general_ci", +]; +static EN_COLLATION_LEN: usize = EN_COLLATION.len(); + +static EN_COLUMN: [&'static str; 14] = [ + "id", + "title", + "name", + "email", + "phone", + "token", + "group", + "category", + "password", + "comment", + "avatar", + "status", + "createdAt", + "updatedAt", +]; +static EN_COLUMN_LEN: usize = EN_COLUMN.len(); + +static EN_ENGINE: [&'static str; 6] = [ + "InnoDB", + "MyISAM", + "MEMORY", + "CSV", + "BLACKHOLE", + "ARCHIVE" +]; +static EN_ENGINE_LEN: usize = EN_ENGINE.len(); + +static EN_COLUMN_TYPE: [&'static str; 24] = [ + "int", + "varchar", + "text", + "date", + "datetime", + "tinyint", + "time", + "timestamp", + "smallint", + "mediumint", + "bigint", + "decimal", + "float", + "double", + "real", + "bit", + "boolean", + "serial", + "blob", + "binary", + "enum", + "set", + "geometry", + "point", +]; +static EN_COLUMN_TYPE_LEN: usize = EN_COLUMN_TYPE.len(); \ No newline at end of file diff --git a/src/locales/en/database/mod.rs b/src/locales/en/database/mod.rs new file mode 100644 index 0000000..3ea3f13 --- /dev/null +++ b/src/locales/en/database/mod.rs @@ -0,0 +1 @@ +pub mod database; \ No newline at end of file diff --git a/src/locales/en/mod.rs b/src/locales/en/mod.rs index 0c9343c..f64b667 100644 --- a/src/locales/en/mod.rs +++ b/src/locales/en/mod.rs @@ -17,5 +17,6 @@ pub mod color; pub mod app; pub mod lorem; pub mod team; -pub mod education; pub mod commerce; +pub mod database; +pub mod education;