Avoid magic numbers in enum

This commit is contained in:
Damien Elmes 2025-09-04 11:47:36 +10:00
parent 43832e18e2
commit 557df8eb59
2 changed files with 8 additions and 9 deletions

View file

@ -3,6 +3,7 @@
use std::sync::LazyLock; use std::sync::LazyLock;
use anki_proto::search::search_node::FieldSearchMode as FieldSearchModeProto;
use nom::branch::alt; use nom::branch::alt;
use nom::bytes::complete::escaped; use nom::bytes::complete::escaped;
use nom::bytes::complete::is_not; use nom::bytes::complete::is_not;
@ -27,7 +28,6 @@ use crate::error::ParseError;
use crate::error::Result; use crate::error::Result;
use crate::error::SearchErrorKind as FailKind; use crate::error::SearchErrorKind as FailKind;
use crate::prelude::*; use crate::prelude::*;
type IResult<'a, O> = std::result::Result<(&'a str, O), nom::Err<ParseError<'a>>>; type IResult<'a, O> = std::result::Result<(&'a str, O), nom::Err<ParseError<'a>>>;
type ParseResult<'a, O> = std::result::Result<O, nom::Err<ParseError<'a>>>; type ParseResult<'a, O> = std::result::Result<O, nom::Err<ParseError<'a>>>;
@ -55,13 +55,12 @@ pub enum FieldSearchMode {
NoCombining, NoCombining,
} }
impl From<i32> for FieldSearchMode { impl From<FieldSearchModeProto> for FieldSearchMode {
fn from(val: i32) -> Self { fn from(mode: FieldSearchModeProto) -> Self {
match val { match mode {
0 => Self::Normal, FieldSearchModeProto::FieldSearchNormal => Self::Normal,
1 => Self::Regex, FieldSearchModeProto::FieldSearchRegex => Self::Regex,
2 => Self::NoCombining, FieldSearchModeProto::FieldSearchNocombining => Self::NoCombining,
_ => Self::Normal,
} }
} }
} }

View file

@ -108,7 +108,7 @@ impl TryFrom<anki_proto::search::SearchNode> for Node {
Filter::Field(field) => Node::Search(SearchNode::SingleField { Filter::Field(field) => Node::Search(SearchNode::SingleField {
field: escape_anki_wildcards(&field.field_name), field: escape_anki_wildcards(&field.field_name),
text: escape_anki_wildcards(&field.text), text: escape_anki_wildcards(&field.text),
mode: field.mode.into(), mode: field.mode().into(),
}), }),
Filter::LiteralText(text) => { Filter::LiteralText(text) => {
let text = escape_anki_wildcards(&text); let text = escape_anki_wildcards(&text);