aboutsummaryrefslogtreecommitdiff
path: root/ms_core
diff options
context:
space:
mode:
authorOsCoder <oscoder@lczimmermann.eu>2026-08-17 09:24:47 +0200
committerOsCoder <oscoder@lczimmermann.eu>2026-08-17 09:24:47 +0200
commit56bcf39fcf4adb42aa4afda3f55a6cab9ccf7a8d (patch)
tree8d27bf3e389ec8ce266362c84a54466a6d45eb97 /ms_core
parente50362a37a71cdae08c205281ece396aa0a29a23 (diff)
downloadmini-service-master.tar.xz
mini-service-master.zip
Started with basic system layoutHEADmaster
Diffstat (limited to 'ms_core')
-rw-r--r--ms_core/system_id.v17
-rw-r--r--ms_core/system_id_test.v24
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
+}