Simplify wiki id parsing
This commit is contained in:
parent
b94d358423
commit
258a4b2a94
1 changed files with 2 additions and 17 deletions
|
@ -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<WikiId, IdParseError> {
|
||||
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.));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue