Lines
0 %
Functions
use std::str::SplitWhitespace;
use serde::{Deserialize, Serialize};
use crate::{
commands::RequestParserError,
common::{Priority, Tag},
};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum CaseSensitivity {
CaseSensitive,
CaseInsensitive,
CommandDependent,
}
pub enum Filter {
Not(Box<Filter>),
And(Box<Filter>, Box<Filter>),
EqTag(Tag, String, CaseSensitivity),
Contains(Tag, String, CaseSensitivity),
StartsWith(Tag, String, CaseSensitivity),
PerlRegex(Tag, String),
NegPerlRegex(Tag, String),
EqUri(String),
Base(String),
ModifiedSince(u64),
AudioFormatEq {
sample_rate: u32,
bits: u8,
channels: u8,
},
AudioFormatEqMask {
sample_rate: Option<u32>,
bits: Option<u8>,
channels: Option<u8>,
PrioCmp(Priority),
pub fn parse_filter(parts: &mut SplitWhitespace<'_>) -> Result<Filter, RequestParserError> {
todo!()