mirror of
https://github.com/fluencelabs/sqlite-wasm-connector
synced 2025-04-25 16:52:15 +00:00
Add Error::last
This commit is contained in:
parent
72ff84e686
commit
4baf4517f8
@ -60,10 +60,15 @@ impl<'l> Database<'l> {
|
|||||||
impl<'l> Drop for Database<'l> {
|
impl<'l> Drop for Database<'l> {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn drop(&mut self) {
|
fn drop(&mut self) {
|
||||||
unsafe { ::raw::sqlite3_close(self.raw) };
|
unsafe { raw::sqlite3_close(self.raw) };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
pub fn as_raw(database: &mut Database) -> *mut raw::sqlite3 {
|
||||||
|
database.raw
|
||||||
|
}
|
||||||
|
|
||||||
extern fn execute_callback(callback: *mut c_void, count: c_int, values: *mut *mut c_char,
|
extern fn execute_callback(callback: *mut c_void, count: c_int, values: *mut *mut c_char,
|
||||||
columns: *mut *mut c_char) -> c_int {
|
columns: *mut *mut c_char) -> c_int {
|
||||||
|
|
||||||
|
25
src/error.rs
25
src/error.rs
@ -1,7 +1,8 @@
|
|||||||
use ResultCode;
|
use raw;
|
||||||
|
|
||||||
use std::convert::{From, Into};
|
use std::convert::{From, Into};
|
||||||
|
|
||||||
|
use {Database, ResultCode};
|
||||||
|
|
||||||
/// An error.
|
/// An error.
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct Error {
|
pub struct Error {
|
||||||
@ -9,6 +10,26 @@ pub struct Error {
|
|||||||
pub message: Option<String>,
|
pub message: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Error {
|
||||||
|
/// Return the last occurred error if any.
|
||||||
|
pub fn last(database: &mut Database) -> Option<Error> {
|
||||||
|
unsafe {
|
||||||
|
let code = raw::sqlite3_errcode(::database::as_raw(database));
|
||||||
|
if code == raw::SQLITE_OK {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
let message = raw::sqlite3_errmsg(::database::as_raw(database));
|
||||||
|
if message.is_null() {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
Some(Error {
|
||||||
|
code: ::result::code_from_raw(code),
|
||||||
|
message: Some(c_str_to_string!(message)),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl<T> From<T> for Error where T: Into<String> {
|
impl<T> From<T> for Error where T: Into<String> {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn from(message: T) -> Error {
|
fn from(message: T) -> Error {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user