Skip to content

Commit 2b2439a

Browse files
authored
feat: add rank attribute to Entry for storing word frequencies (#1210)
1 parent 1e71b5a commit 2b2439a

File tree

14 files changed

+27
-7
lines changed

14 files changed

+27
-7
lines changed

examples/example1.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<dictionary name="Example Dictionary 1"
33
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../odict.xsd">
4-
<entry term="run">
4+
<entry rank="100" term="run">
55
<ety description="Latin root">
66
<sense pos="v">
77
<group description="A number of verb senses">

lib/src/format/json/entry.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ use super::{EntryRefJSON, EtymologyJSON};
1010
pub struct EntryJSON {
1111
pub term: String,
1212

13+
#[serde(skip_serializing_if = "Option::is_none")]
14+
pub rank: Option<u32>,
15+
1316
#[serde(skip_serializing_if = "Option::is_none")]
1417
pub see_also: Option<EntryRefJSON>,
1518

lib/src/models/entry.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ serializable! {
1010
#[serde(rename = "@term")]
1111
pub term: String,
1212

13+
#[serde(rename = "@rank")]
14+
#[serde(skip_serializing_if = "Option::is_none")]
15+
pub rank: Option<u32>,
16+
1317
#[serde(rename = "@see")]
1418
#[serde(skip_serializing_if = "Option::is_none")]
1519
pub see_also: Option<EntryRef>,

lib/tests/merge.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ mod merge_tests {
1313
name: None,
1414
entries: hash_map! {
1515
String::from("dog") => Entry {
16+
rank: None,
1617
media: vec![],
1718
term: "dog".to_string(),
1819
see_also: None,
@@ -52,6 +53,7 @@ mod merge_tests {
5253
entries: hash_map! {
5354
"cat".to_string()=>
5455
Entry {
56+
rank: None,
5557
media: vec![],
5658
see_also: None,
5759
term: "cat".to_string(),
@@ -89,6 +91,7 @@ mod merge_tests {
8991
name: None,
9092
entries: hash_map! {
9193
"dog".to_string() => Entry {
94+
rank: None,
9295
see_also: None,
9396
media: vec![],
9497
term: "dog".to_string(),
@@ -120,6 +123,7 @@ mod merge_tests {
120123
},
121124
"cat".to_string() => Entry {
122125
see_also: None,
126+
rank: None,
123127
media: vec![],
124128
term: "cat".to_string(),
125129
etymologies: vec![Etymology {

lib/tests/resolve.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ mod resolve_tests {
1515
name: None,
1616
entries: hash_map! {
1717
String::from("dog") => Entry {
18+
rank: None,
1819
media: vec![],
1920
term: "dog".to_string(),
2021
see_also: None,

lib/tests/snapshots/dump__dump_tests__json.snap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ expression: dumped
8989
},
9090
"run": {
9191
"term": "run",
92+
"rank": 100,
9293
"etymologies": [
9394
{
9495
"description": "Latin root",

lib/tests/tags.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ fn test_form_with_tags() {
102102
// Create an entry with the etymology
103103
let entry = Entry {
104104
media: vec![],
105+
rank: None,
105106
term: "word".to_string(),
106107
see_also: None,
107108
etymologies: vec![etymology],

lib/tests/translation.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ fn test_translation_in_entry() {
6868
// Create an entry with the etymology
6969
let entry = Entry {
7070
media: vec![],
71+
rank: None,
7172
term: "hello".to_string(),
7273
see_also: None,
7374
etymologies: vec![etymology],

node/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export interface DictionaryOptions {
3535

3636
export interface Entry {
3737
term: string;
38+
rank?: number;
3839
seeAlso?: string;
3940
etymologies: Array<Etymology>;
4041
media: Array<MediaURL>;

node/src/types/entry.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ use super::media_url::MediaURL;
1111
#[convert(from(odict::Entry))]
1212
pub struct Entry {
1313
pub term: String,
14+
pub rank: Option<u32>,
1415
pub see_also: Option<String>,
1516
pub etymologies: Vec<Etymology>,
1617
pub media: Vec<MediaURL>,

0 commit comments

Comments
 (0)