diff options
| author | OsCoder <oscoder@lczimmermann.eu> | 2026-08-17 09:24:47 +0200 |
|---|---|---|
| committer | OsCoder <oscoder@lczimmermann.eu> | 2026-08-17 09:24:47 +0200 |
| commit | 56bcf39fcf4adb42aa4afda3f55a6cab9ccf7a8d (patch) | |
| tree | 8d27bf3e389ec8ce266362c84a54466a6d45eb97 /ms_core | |
| parent | e50362a37a71cdae08c205281ece396aa0a29a23 (diff) | |
| download | mini-service-master.tar.xz mini-service-master.zip | |
Diffstat (limited to 'ms_core')
| -rw-r--r-- | ms_core/system_id.v | 17 | ||||
| -rw-r--r-- | ms_core/system_id_test.v | 24 |
2 files changed, 41 insertions, 0 deletions
diff --git a/ms_core/system_id.v b/ms_core/system_id.v new file mode 100644 index 0000000..4413b75 --- /dev/null +++ b/ms_core/system_id.v @@ -0,0 +1,17 @@ +module ms_core + +import crypto.rand + +pub struct SystemId { +mut: + base [16]u8 +} + +pub fn get_new_system_id() !SystemId { + bytes := rand.bytes(16) or { panic('Could not retireve 16 randrom bytes for system_id!') } + mut base := [16]u8{} + copy(mut base, bytes) + return SystemId{ + base: base + } +} diff --git a/ms_core/system_id_test.v b/ms_core/system_id_test.v new file mode 100644 index 0000000..08a893d --- /dev/null +++ b/ms_core/system_id_test.v @@ -0,0 +1,24 @@ +module ms_core + +fn test_generate_system_id() { + id := get_new_system_id() or { + assert false, 'failed to generate SystemId: ${err}' + return + } + + assert id.base.len == 16 +} + +fn test_system_ids_are_unique() { + id1 := get_new_system_id() or { + assert false, 'failed to generate first SystemId: ${err}' + return + } + + id2 := get_new_system_id() or { + assert false, 'failed to generate second SystemId: ${err}' + return + } + + assert id1.base != id2.base +} |
