1use std::time::SystemTime;
2
3use crate::functions::{
4 encode::{EncodeOptions, encode_unsafe},
5 get_randomness::{_get_randomness, GetRandomnessOptions},
6};
7
8pub struct RowIDOptions<CharList: AsRef<str>> {
9 pub char_list: CharList,
10 pub randomness_length: usize,
11}
12
13pub fn _rowid<CharList: AsRef<str>>(opts: RowIDOptions<CharList>) -> String {
14 let char_list: &str = opts.char_list.as_ref();
15
16 encode_unsafe(EncodeOptions { char_list, system_time: SystemTime::now() })
17 + &_get_randomness(GetRandomnessOptions {
18 char_list,
19 randomness_length: opts.randomness_length,
20 })
21}