1#[cfg(feature = "bevy-resource")]
2use bevy::prelude::Resource;
3use std::time::{SystemTime, UNIX_EPOCH};
4
5#[cfg_attr(feature = "bevy-resource", derive(Resource))]
7#[derive(Clone, Copy, Debug)]
8pub struct RunSeed {
9 pub value: u64,
10}
11
12pub fn resolve_seed(cli_seed: Option<u64>) -> u64 {
14 if let Some(s) = cli_seed {
15 return s;
16 }
17 if let Ok(env_seed) = std::env::var("LABEL_SEED") {
18 if let Ok(parsed) = env_seed.parse::<u64>() {
19 return parsed;
20 }
21 }
22 SystemTime::now()
23 .duration_since(UNIX_EPOCH)
24 .map(|d| d.as_nanos() as u64)
25 .unwrap_or(1)
26}