@@ -13,14 +13,23 @@ pub struct PaginationSetting {
13
13
pub max_total_hits : usize ,
14
14
}
15
15
16
- #[ derive( Serialize , Deserialize , Default , Debug , Clone , PartialEq , Eq ) ]
16
+ #[ derive( Serialize , Deserialize , Debug , Clone , PartialEq , Eq ) ]
17
17
#[ serde( rename_all = "camelCase" ) ]
18
18
pub struct MinWordSizeForTypos {
19
- pub one_typo : i64 ,
20
- pub two_typos : i64 ,
19
+ pub one_typo : Option < i64 > ,
20
+ pub two_typos : Option < i64 > ,
21
21
}
22
22
23
- #[ derive( Serialize , Deserialize , Default , Debug , Clone , PartialEq , Eq ) ]
23
+ impl Default for MinWordSizeForTypos {
24
+ fn default ( ) -> Self {
25
+ MinWordSizeForTypos {
26
+ one_typo : Some ( 5 ) ,
27
+ two_typos : Some ( 9 ) ,
28
+ }
29
+ }
30
+ }
31
+
32
+ #[ derive( Serialize , Deserialize , Debug , Clone , PartialEq , Eq ) ]
24
33
#[ serde( rename_all = "camelCase" ) ]
25
34
pub struct TypoToleranceSettings {
26
35
pub enabled : Option < bool > ,
@@ -29,6 +38,17 @@ pub struct TypoToleranceSettings {
29
38
pub min_word_size_for_typos : Option < MinWordSizeForTypos > ,
30
39
}
31
40
41
+ impl Default for TypoToleranceSettings {
42
+ fn default ( ) -> Self {
43
+ TypoToleranceSettings {
44
+ enabled : Some ( true ) ,
45
+ disable_on_attributes : Some ( vec ! [ ] ) ,
46
+ disable_on_words : Some ( vec ! [ ] ) ,
47
+ min_word_size_for_typos : Some ( MinWordSizeForTypos :: default ( ) ) ,
48
+ }
49
+ }
50
+ }
51
+
32
52
#[ derive( Serialize , Deserialize , Default , Debug , Clone , Eq , PartialEq ) ]
33
53
#[ serde( rename_all = "camelCase" ) ]
34
54
pub struct FacetingSettings {
@@ -1050,14 +1070,7 @@ impl Index {
1050
1070
/// # client.create_index("set_typo_tolerance", None).await.unwrap().wait_for_completion(&client, None, None).await.unwrap();
1051
1071
/// let mut index = client.index("set_typo_tolerance");
1052
1072
///
1053
- /// let mut typo_tolerance = TypoToleranceSettings {
1054
- /// enabled: Some(true),
1055
- /// disable_on_attributes: None,
1056
- /// disable_on_words: None,
1057
- /// min_word_size_for_typos: Some(MinWordSizeForTypos {
1058
- /// one_typo: 5,
1059
- /// two_typos: 9})
1060
- /// };
1073
+ /// let mut typo_tolerance = TypoToleranceSettings::default();
1061
1074
///
1062
1075
/// let task = index.set_typo_tolerance(&typo_tolerance).await.unwrap();
1063
1076
/// # index.delete().await.unwrap().wait_for_completion(&client, None, None).await.unwrap();
@@ -1563,15 +1576,7 @@ mod tests {
1563
1576
1564
1577
#[ meilisearch_test]
1565
1578
async fn test_get_typo_tolerance ( index : Index ) {
1566
- let typo_tolerance = TypoToleranceSettings {
1567
- enabled : Some ( true ) ,
1568
- disable_on_attributes : None ,
1569
- disable_on_words : None ,
1570
- min_word_size_for_typos : Some ( MinWordSizeForTypos {
1571
- one_typo : 5 ,
1572
- two_typos : 9 ,
1573
- } ) ,
1574
- } ;
1579
+ let typo_tolerance = TypoToleranceSettings :: default ( ) ;
1575
1580
1576
1581
let res = index. get_typo_tolerance ( ) . await . unwrap ( ) ;
1577
1582
@@ -1582,11 +1587,11 @@ mod tests {
1582
1587
async fn test_set_typo_tolerance ( client : Client , index : Index ) {
1583
1588
let typo_tolerance = TypoToleranceSettings {
1584
1589
enabled : Some ( false ) ,
1585
- disable_on_attributes : None ,
1586
- disable_on_words : None ,
1590
+ disable_on_attributes : Some ( vec ! [ ] ) ,
1591
+ disable_on_words : Some ( vec ! [ ] ) ,
1587
1592
min_word_size_for_typos : Some ( MinWordSizeForTypos {
1588
- one_typo : 6 ,
1589
- two_typos : 9 ,
1593
+ one_typo : Some ( 6 ) ,
1594
+ two_typos : Some ( 9 ) ,
1590
1595
} ) ,
1591
1596
} ;
1592
1597
let task_info = index. set_typo_tolerance ( & typo_tolerance) . await . unwrap ( ) ;
@@ -1601,20 +1606,11 @@ mod tests {
1601
1606
async fn test_reset_typo_tolerance ( index : Index ) {
1602
1607
let typo_tolerance = TypoToleranceSettings {
1603
1608
enabled : Some ( false ) ,
1604
- disable_on_attributes : None ,
1605
- disable_on_words : None ,
1609
+ disable_on_attributes : Some ( vec ! [ ] ) ,
1610
+ disable_on_words : Some ( vec ! [ ] ) ,
1606
1611
min_word_size_for_typos : Some ( MinWordSizeForTypos {
1607
- one_typo : 1 ,
1608
- two_typos : 2 ,
1609
- } ) ,
1610
- } ;
1611
- let default = TypoToleranceSettings {
1612
- enabled : Some ( true ) ,
1613
- disable_on_attributes : None ,
1614
- disable_on_words : None ,
1615
- min_word_size_for_typos : Some ( MinWordSizeForTypos {
1616
- one_typo : 5 ,
1617
- two_typos : 9 ,
1612
+ one_typo : Some ( 1 ) ,
1613
+ two_typos : Some ( 2 ) ,
1618
1614
} ) ,
1619
1615
} ;
1620
1616
@@ -1626,6 +1622,6 @@ mod tests {
1626
1622
1627
1623
let res = index. get_typo_tolerance ( ) . await . unwrap ( ) ;
1628
1624
1629
- assert_eq ! ( default , res) ;
1625
+ assert_eq ! ( TypoToleranceSettings :: default ( ) , res) ;
1630
1626
}
1631
1627
}
0 commit comments