diff --git a/src/config/value.rs b/src/config/value.rs index bfd29b6..cc7583c 100644 --- a/src/config/value.rs +++ b/src/config/value.rs @@ -15,7 +15,6 @@ pub struct Config { pub struct NodeConfig { /// The default version if no version is specified /// in the `package.json` file or `NODE_VERSION` environment variable - #[serde(with = "NodeVersion")] pub default_version: NodeVersion, } diff --git a/src/consts.rs b/src/consts.rs index 78765d4..f4dab5a 100644 --- a/src/consts.rs +++ b/src/consts.rs @@ -14,7 +14,7 @@ lazy_static! { .unwrap_or_else(|| PathBuf::from(".cache")) .join(PathBuf::from("nenv")); pub static ref CFG_FILE_PATH: PathBuf = CFG_DIR.join("config.toml"); - pub static ref VERSION_FILE_PATH: PathBuf = DATA_DIR.join("versions.cache"); + pub static ref VERSION_FILE_PATH: PathBuf = CACHE_DIR.join("versions.cache"); pub static ref BIN_DIR: PathBuf = DATA_DIR.join("bin"); pub static ref NODE_VERSIONS_DIR: PathBuf = DATA_DIR.join("versions"); pub static ref NODE_ARCHIVE_SUFFIX: String = format!("-{OS}-{ARCH}.{ARCHIVE_TYPE}"); diff --git a/src/repository/mod.rs b/src/repository/mod.rs index 012bf35..d52e34a 100644 --- a/src/repository/mod.rs +++ b/src/repository/mod.rs @@ -56,13 +56,23 @@ impl FromStr for NodeVersion { } } -impl NodeVersion { - pub fn deserialize<'de, D: Deserializer<'de>>(deserializer: D) -> Result { +impl<'de> Deserialize<'de> for NodeVersion { + #[inline] + fn deserialize(deserializer: D) -> std::result::Result + where + D: Deserializer<'de>, + { let string = String::deserialize(deserializer)?; Self::from_str(&string).map_err(serde::de::Error::custom) } +} - pub fn serialize(&self, serializer: S) -> Result { +impl Serialize for NodeVersion { + #[inline] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: Serializer, + { self.to_string().serialize(serializer) } } @@ -165,7 +175,9 @@ impl Repository { #[tracing::instrument(level = "debug", skip(self))] pub async fn install_version(&self, version: &NodeVersion) -> Result<()> { let info = self.lookup_version(version)?; - self.downloader.download(&info.version).await + self.downloader.download(&info.version).await?; + + Ok(()) } /// Performs a lookup for the given node version