| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
| |
Allows easy conversion of any `T: AsOsStr` to a `CString`, whose
`as_ptr()` method is quite convenient for FFI calls.
Note that `std::path::Path` implements `AsOsStr`, which means we can
easily take paths and get a pointer to `*const libc::c_char`.
|
| |
|
|
| |
`Result<T, E>` where `E` is always the local `Error` type.
|
| |
|
|
| |
Returns the underlying error type, if any.
|
| |
|
|
|
|
|
|
|
| |
Implement `Display`, `Error`, and various `FromError<T>` traits on
`Error`, allowing the use of `try!` on the various `Result` types in the
crate.
Note that currently the only error variants are those thrown from
a lower-level operation.
|
| |
|
|
|
|
|
|
|
|
| |
Entails implementation of `ToStr` and `Display`, also.
Note that the `to_str()` method uses the `to_static_str()` method on the
`ToStaticStr` trait internally --- this is how I expect to use the
latter. This lets me provide a uniform `to_str()` method in the rest of
the API, while transparently handling the differences between C string
lifetimes.
|
| |
|
|
|
|
|
|
| |
Allow easy mapping of borrowed C strings to borrowed strings with
appropriate lifetimes.
I have some doubts about this, as I'm not 100% on how lifetimes interact
with the notmuch-provided strings yet.
|
| |
|
|
|
| |
Convenience methods for working the result of many of the native notmuch
functions.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implements enum types in pairs, specifying the type and variant names of
each, like so:
notmuch_enum! {
pub enum enum_name => EnumName {
variant_one => VariantOne,
variant_two => VariantTwo
}
}
Which expands to:
pub enum enum_name {
variant_one,
variant_two
}
pub enum EnumName {
VariantOne,
VariantTwo
}
The `NotmuchEnum` trait also entails two functions to convert between
the defined pairs, `from_notmuch_t()` and `to_notmuch_t()`. The macro
takes care of their implementation, also.
Yes, this is purely aesthetic whimsy: I wanted the types in the `ffi`
module to match the types from the `notmuch.h` file, and I wanted the
types I used within (and exported by) this crate to match the expected
Rust convention.
|
| |
|
|
|
| |
The ffi module now reproduces the notmuch C API, as defined in
`notmuch.h`, more-or-less verbatim.
|
| | |
|
|
|
Use libc crate.
|