From 6026069029aaf969bee3886c6f41a51f2bbb0b09 Mon Sep 17 00:00:00 2001 From: Martin Asquino Date: Tue, 3 Nov 2020 22:52:03 +0000 Subject: [PATCH] Prefer T::deserialize over T::from_value to avoid clone --- src/vim.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/vim.rs b/src/vim.rs index c26170eca..9bf0cd3b1 100644 --- a/src/vim.rs +++ b/src/vim.rs @@ -9,17 +9,17 @@ use anyhow::Result; use jsonrpc_core::Value; use log::*; use lsp_types::Position; -use serde::{de::DeserializeOwned, Serialize}; +use serde::{de::DeserializeOwned, Deserialize, Serialize}; use serde_json::json; use std::{path::Path, sync::Arc}; /// Try get value of an variable from RPC params. -pub fn try_get(key: &str, params: &Value) -> Result> { +pub fn try_get<'a, R: Deserialize<'a>>(key: &str, params: &'a Value) -> Result> { let value = ¶ms[key]; if value == &Value::Null { Ok(None) } else { - Ok(serde_json::from_value(value.clone())?) + Ok(>::deserialize(value)?) } }