diff --git a/rslib/src/search/parser.rs b/rslib/src/search/parser.rs index 73cc4d8fc..1c7fce39f 100644 --- a/rslib/src/search/parser.rs +++ b/rslib/src/search/parser.rs @@ -3,6 +3,7 @@ use std::sync::LazyLock; +use anki_proto::search::search_node::FieldSearchMode as FieldSearchModeProto; use nom::branch::alt; use nom::bytes::complete::escaped; use nom::bytes::complete::is_not; @@ -27,7 +28,6 @@ use crate::error::ParseError; use crate::error::Result; use crate::error::SearchErrorKind as FailKind; use crate::prelude::*; - type IResult<'a, O> = std::result::Result<(&'a str, O), nom::Err>>; type ParseResult<'a, O> = std::result::Result>>; @@ -55,13 +55,12 @@ pub enum FieldSearchMode { NoCombining, } -impl From for FieldSearchMode { - fn from(val: i32) -> Self { - match val { - 0 => Self::Normal, - 1 => Self::Regex, - 2 => Self::NoCombining, - _ => Self::Normal, +impl From for FieldSearchMode { + fn from(mode: FieldSearchModeProto) -> Self { + match mode { + FieldSearchModeProto::FieldSearchNormal => Self::Normal, + FieldSearchModeProto::FieldSearchRegex => Self::Regex, + FieldSearchModeProto::FieldSearchNocombining => Self::NoCombining, } } } diff --git a/rslib/src/search/service/search_node.rs b/rslib/src/search/service/search_node.rs index 9cc0fed53..6986eef2a 100644 --- a/rslib/src/search/service/search_node.rs +++ b/rslib/src/search/service/search_node.rs @@ -108,7 +108,7 @@ impl TryFrom for Node { Filter::Field(field) => Node::Search(SearchNode::SingleField { field: escape_anki_wildcards(&field.field_name), text: escape_anki_wildcards(&field.text), - mode: field.mode.into(), + mode: field.mode().into(), }), Filter::LiteralText(text) => { let text = escape_anki_wildcards(&text);