use super::humanregex::{fmt, HumanRegex};
pub fn at_least<T>(n: u8, target: T) -> HumanRegex
where
T: Into<String> + fmt::Display,
{
HumanRegex(format!("(?:{}){{{},}}", target, n))
}
pub fn between<T>(n: u8, m: u8, target: T) -> HumanRegex
where
T: Into<String> + fmt::Display,
{
HumanRegex(format!("(?:{}){{{},{}}}", target, n, m))
}
pub fn one_or_more<T>(target: T) -> HumanRegex
where
T: Into<String> + fmt::Display,
{
HumanRegex(format!("(?:{})+", target))
}
pub fn zero_or_more<T>(target: T) -> HumanRegex
where
T: Into<String> + fmt::Display,
{
HumanRegex(format!("(?:{})*", target))
}
pub fn zero_or_one<T>(target: T) -> HumanRegex
where
T: Into<String> + fmt::Display,
{
HumanRegex(format!("(?:{})?", target))
}
pub fn exactly<T>(n: u8, target: T) -> HumanRegex
where
T: Into<String> + fmt::Display,
{
HumanRegex(format!("(?:{}){{{}}}", target, n))
}