A pattern which matches or generates a string.
@type matcher() :: {:datetime, String.t(), String.t()} | {:like, t()} | {:each_like, t()} | {:matching_regex, String.t(), String.t()}
@type t() :: binary() | matcher()
@spec datetime(format :: String.t(), example :: String.t()) :: t()
@spec each_like(pattern :: t()) :: t()
@spec like(pattern :: t()) :: t()
@spec matching_regex(regex :: String.t(), example :: String.t()) :: t()
@spec string_pattern(pattern :: t()) :: t()
@spec term(regex :: String.t(), example :: String.t()) :: t()