use crate::parsing::Id;
use crate::query::{BuiltInMacro, QueryConstFn, QueryError, Used};
use runestick::{CompileMeta, Item, Span};
use std::sync::Arc;
pub(crate) trait IrQuery {
fn query_meta(
&mut self,
span: Span,
item: &Item,
used: Used,
) -> Result<Option<CompileMeta>, QueryError>;
fn builtin_macro_for(
&self,
span: Span,
id: Option<Id>,
) -> Result<Arc<BuiltInMacro>, QueryError>;
fn const_fn_for(&self, span: Span, id: Option<Id>) -> Result<Arc<QueryConstFn>, QueryError>;
}