nexus-scribe-utils

Shared utilities and helper functions used across NexusScribe services.

Overview

Provides common utility functions for time handling, string manipulation, and validation used throughout the codebase.

Time Utilities

Current Timestamp

use nexus_scribe_utils::{current_timestamp_ms, current_timestamp_secs};

let ms = current_timestamp_ms();  // Unix timestamp in milliseconds
let secs = current_timestamp_secs();  // Unix timestamp in seconds

Duration Formatting

use nexus_scribe_utils::format_duration_ms;

assert_eq!(format_duration_ms(5000), "5s");
assert_eq!(format_duration_ms(65000), "1m 5s");
assert_eq!(format_duration_ms(3665000), "1h 1m 5s");

String Utilities

Truncation

use nexus_scribe_utils::truncate_string;

let result = truncate_string("Hello world", 8);
assert_eq!(result, "Hello...");

Filename Sanitization

use nexus_scribe_utils::sanitize_filename;

let safe = sanitize_filename("Meeting: 2024/01/15");
assert_eq!(safe, "Meeting_ 2024_01_15");

Replaces unsafe characters: /, \, :, *, ?, ", <, >, |

Validation Utilities

Email Validation

use nexus_scribe_utils::is_valid_email;

assert!(is_valid_email("user@example.com"));
assert!(!is_valid_email("invalid"));

Password Strength

use nexus_scribe_utils::is_strong_password;

assert!(is_strong_password("Passw0rd"));  // Has upper, lower, digit
assert!(!is_strong_password("weak"));

Requirements:

  • Minimum 8 characters
  • At least 1 uppercase letter
  • At least 1 lowercase letter
  • At least 1 number

Usage

[dependencies]
nexus-scribe-utils = { path = "../nexus-scribe-utils" }