rowid/functions/
rowid.rs

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}