From 93996fecdc6866412fa51120ba33150c4107d42e Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 27 Dec 2018 12:59:30 +0300 Subject: add cancelation module & cancelation backtraces --- crates/ra_db/src/lib.rs | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) (limited to 'crates/ra_db/src/lib.rs') diff --git a/crates/ra_db/src/lib.rs b/crates/ra_db/src/lib.rs index 78f2cbf12..1f7c9187b 100644 --- a/crates/ra_db/src/lib.rs +++ b/crates/ra_db/src/lib.rs @@ -1,27 +1,17 @@ //! ra_db defines basic database traits. Concrete DB is defined by ra_analysis. +mod cancelation; mod syntax_ptr; mod input; mod loc2id; pub mod mock; use std::sync::Arc; + use ra_editor::LineIndex; use ra_syntax::{TextUnit, SourceFileNode}; -#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] -pub struct Canceled; - -pub type Cancelable = Result; - -impl std::fmt::Display for Canceled { - fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - fmt.write_str("canceled") - } -} - -impl std::error::Error for Canceled {} - pub use crate::{ + cancelation::{Canceled, Cancelable}, syntax_ptr::LocalSyntaxPtr, input::{ FilesDatabase, FileId, CrateId, SourceRoot, SourceRootId, CrateGraph, @@ -48,7 +38,7 @@ macro_rules! impl_numeric_id { pub trait BaseDatabase: salsa::Database { fn check_canceled(&self) -> Cancelable<()> { if self.salsa_runtime().is_current_revision_canceled() { - Err(Canceled) + Err(Canceled::new()) } else { Ok(()) } -- cgit v1.2.3