Expose function definitions and populate FaerieCompiledFunction with function lengths
This commit is contained in:
@@ -40,7 +40,8 @@ mod module;
|
||||
pub use crate::backend::Backend;
|
||||
pub use crate::data_context::{DataContext, DataDescription, Init};
|
||||
pub use crate::module::{
|
||||
DataId, FuncId, FuncOrDataId, Linkage, Module, ModuleError, ModuleNamespace, ModuleResult,
|
||||
DataId, FuncId, FuncOrDataId, Linkage, Module, ModuleError, ModuleFunction, ModuleNamespace,
|
||||
ModuleResult,
|
||||
};
|
||||
|
||||
/// Version number of this crate.
|
||||
|
||||
@@ -153,14 +153,14 @@ pub enum ModuleError {
|
||||
pub type ModuleResult<T> = Result<T, ModuleError>;
|
||||
|
||||
/// A function belonging to a `Module`.
|
||||
struct ModuleFunction<B>
|
||||
pub struct ModuleFunction<B>
|
||||
where
|
||||
B: Backend,
|
||||
{
|
||||
/// The function declaration.
|
||||
decl: FunctionDeclaration,
|
||||
pub decl: FunctionDeclaration,
|
||||
/// The compiled artifact, once it's available.
|
||||
compiled: Option<B::CompiledFunction>,
|
||||
pub compiled: Option<B::CompiledFunction>,
|
||||
}
|
||||
|
||||
impl<B> ModuleFunction<B>
|
||||
@@ -427,6 +427,11 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
/// An iterator over functions that have been declared in this module.
|
||||
pub fn declared_functions(&self) -> core::slice::Iter<'_, ModuleFunction<B>> {
|
||||
self.contents.functions.values()
|
||||
}
|
||||
|
||||
/// Declare a data object in this module.
|
||||
pub fn declare_data(
|
||||
&mut self,
|
||||
|
||||
Reference in New Issue
Block a user