steer_core/utils/
session.rs1use std::collections::HashMap;
2
3use crate::error::{Error, Result};
4
5pub fn create_session_store_path() -> Result<std::path::PathBuf> {
6 let home_dir = dirs::home_dir()
7 .ok_or_else(|| Error::Configuration("Could not determine home directory".to_string()))?;
8 let db_path = home_dir.join(".steer").join("sessions.db");
9 Ok(db_path)
10}
11
12pub fn parse_metadata(metadata_str: Option<&str>) -> Result<HashMap<String, String>> {
13 let mut metadata = HashMap::new();
14
15 if let Some(meta_str) = metadata_str {
16 for pair in meta_str.split(',') {
17 let parts: Vec<&str> = pair.split('=').collect();
18 if parts.len() != 2 {
19 return Err(Error::Configuration(
20 "Invalid metadata format. Expected key=value pairs separated by commas"
21 .to_string(),
22 ));
23 }
24 metadata.insert(parts[0].trim().to_string(), parts[1].trim().to_string());
25 }
26 }
27
28 Ok(metadata)
29}