diff options
Diffstat (limited to 'grep/src/lib.rs')
-rw-r--r-- | grep/src/lib.rs | 94 |
1 files changed, 16 insertions, 78 deletions
diff --git a/grep/src/lib.rs b/grep/src/lib.rs index 023cd64a..ab0d78eb 100644 --- a/grep/src/lib.rs +++ b/grep/src/lib.rs @@ -1,84 +1,22 @@ -#![deny(missing_docs)] - /*! -A fast line oriented regex searcher. -*/ - -#[macro_use] -extern crate log; -extern crate memchr; -extern crate regex; -extern crate regex_syntax as syntax; - -use std::error; -use std::fmt; -use std::result; - -pub use search::{Grep, GrepBuilder, Iter, Match}; +ripgrep, as a library. -mod literals; -mod nonl; -mod search; -mod smart_case; -mod word_boundary; +This library is intended to provide a high level facade to the crates that +make up ripgrep's core searching routines. However, there is no high level +documentation available yet guiding users on how to fit all of the pieces +together. -/// Result is a convenient type alias that fixes the type of the error to -/// the `Error` type defined in this crate. -pub type Result<T> = result::Result<T, Error>; +Every public API item in the constituent crates is documented, but examples +are sparse. -/// Error enumerates the list of possible error conditions when building or -/// using a `Grep` line searcher. -#[derive(Debug)] -pub enum Error { - /// An error from parsing or compiling a regex. - Regex(regex::Error), - /// This error occurs when an illegal literal was found in the regex - /// pattern. For example, if the line terminator is `\n` and the regex - /// pattern is `\w+\n\w+`, then the presence of `\n` will cause this error. - LiteralNotAllowed(char), - /// An unused enum variant that indicates this enum may be expanded in - /// the future and therefore should not be exhaustively matched. - #[doc(hidden)] - __Nonexhaustive, -} - -impl error::Error for Error { - fn description(&self) -> &str { - match *self { - Error::Regex(ref err) => err.description(), - Error::LiteralNotAllowed(_) => "use of forbidden literal", - Error::__Nonexhaustive => unreachable!(), - } - } - - fn cause(&self) -> Option<&error::Error> { - match *self { - Error::Regex(ref err) => err.cause(), - _ => None, - } - } -} - -impl fmt::Display for Error { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - match *self { - Error::Regex(ref err) => err.fmt(f), - Error::LiteralNotAllowed(chr) => { - write!(f, "Literal {:?} not allowed.", chr) - } - Error::__Nonexhaustive => unreachable!(), - } - } -} +A cookbook and a guide are planned. +*/ -impl From<regex::Error> for Error { - fn from(err: regex::Error) -> Error { - Error::Regex(err) - } -} +#![deny(missing_docs)] -impl From<syntax::Error> for Error { - fn from(err: syntax::Error) -> Error { - Error::Regex(regex::Error::Syntax(err.to_string())) - } -} +pub extern crate grep_matcher as matcher; +#[cfg(feature = "pcre2")] +pub extern crate grep_pcre2 as pcre2; +pub extern crate grep_printer as printer; +pub extern crate grep_regex as regex; +pub extern crate grep_searcher as searcher; |