roblox-studio-utils 0.3.3

Cross-platform library for interacting with Roblox Studio
Documentation
use std::path::PathBuf;

use crate::{RobloxStudioError, RobloxStudioResult};

use super::RobloxStudioPathsInner;

impl RobloxStudioPathsInner {
    pub(super) fn new() -> RobloxStudioResult<Self> {
        let document_dir =
            dirs::document_dir().ok_or(RobloxStudioError::UserDocumentsDirMissing)?;

        let mut root = PathBuf::from("/Applications");
        root.push("RobloxStudio.app");
        root.push("Contents");

        Ok(Self {
            exe: root.join("MacOS").join("RobloxStudio"),
            launcher: None,
            content: root.join("Resources").join("content"),
            plugins_user: document_dir.join("Roblox").join("Plugins"),
            plugins_builtin: root.join("Resources").join("BuiltInPlugins"),
            settings: dirs::home_dir().map(|home| home.join("Library").join("Roblox")),
        })
    }
}