diff --git a/src/entity.rs b/src/entity.rs index e6299d1..c9075fd 100755 --- a/src/entity.rs +++ b/src/entity.rs @@ -1,6 +1,6 @@ use std::{collections::BTreeMap, str::FromStr}; -use crate::ids::{consts, Fid, IdParseError, Lid, Pid, Qid, Sid, WikiId}; +use crate::ids::{consts, Fid, Lid, Pid, Qid, Sid, WikiId}; use crate::text::{Lang, Text}; use chrono::{DateTime, TimeZone, Utc}; use serde::{Deserialize, Serialize}; @@ -252,7 +252,7 @@ impl Entity { .as_str() .ok_or(EntityError::ExpectedKeyvalTextString)?; - let id: WikiId = match get_wiki_id(raw_id) { + let id: WikiId = match WikiId::from_str(raw_id) { Ok(id) => id, _ => return Err(EntityError::NoId), }; @@ -441,16 +441,6 @@ impl Entity { } } -fn get_wiki_id(id: &str) -> Result { - let uid: WikiId = match &id[0..1] { - "Q" => WikiId::EntityId(Qid::from_str(id).unwrap()), - "P" => WikiId::PropertyId(Pid::from_str(id).unwrap()), - "L" => WikiId::LexemeId(Lid::from_str(id).unwrap()), - _ => return Err(IdParseError::InvalidPrefix), - }; - Ok(uid) -} - /// An error related to entity parsing/creation. #[derive(Debug, Clone, PartialEq, Eq)] #[non_exhaustive] @@ -882,11 +872,6 @@ mod test { assert_eq!(qid, Ok(Qid(1234567))); } - #[test] - fn get_wiki_id_test() { - assert_eq!(get_wiki_id("Q42").unwrap(), WikiId::EntityId(Qid(42))); - } - #[test] fn number_parsing() { assert_eq!(parse_wb_number(&serde_json::json!("+5")), Ok(5.));