diff --git a/compiler/core/README.md b/compiler/core/README.md index ee2b405f42..24e530964a 100644 --- a/compiler/core/README.md +++ b/compiler/core/README.md @@ -3,3 +3,5 @@ [![Crates.io](https://img.shields.io/crates/v/leo-ast.svg?color=neon)](https://crates.io/crates/leo-core) [![Authors](https://img.shields.io/badge/authors-Aleo-orange.svg)](../AUTHORS) [![License](https://img.shields.io/badge/License-GPLv3-blue.svg)](./LICENSE.md) + +This directory acts as a placeholder for Leo core libraries. \ No newline at end of file diff --git a/compiler/core/src/lib.rs b/compiler/core/src/lib.rs index bdf1bc529f..90d75146cb 100644 --- a/compiler/core/src/lib.rs +++ b/compiler/core/src/lib.rs @@ -16,89 +16,3 @@ #![forbid(unsafe_code)] #![doc = include_str!("../README.md")] - -mod algorithms; -pub use algorithms::*; - -mod utilities; -pub use utilities::*; - -use leo_ast::Type; -use leo_span::{sym, Symbol}; - -/// A core instruction that maps directly to an AVM bytecode instruction. -#[derive(Clone, PartialEq, Eq)] -pub enum CoreInstruction { - BHP256Commit, - BHP256Hash, - BHP512Commit, - BHP512Hash, - BHP768Commit, - BHP768Hash, - BHP1024Commit, - BHP1024Hash, - - Pedersen64Commit, - Pedersen64Hash, - Pedersen128Commit, - Pedersen128Hash, - - Poseidon2Hash, - Poseidon4Hash, - Poseidon8Hash, -} - -impl CoreInstruction { - /// Returns a `CoreInstruction` from the given module and method symbols. - pub fn from_symbols(module: Symbol, function: Symbol) -> Option { - Some(match (module, function) { - (sym::BHP256, sym::commit) => Self::BHP256Commit, - (sym::BHP256, sym::hash) => Self::BHP256Hash, - (sym::BHP512, sym::commit) => Self::BHP512Commit, - (sym::BHP512, sym::hash) => Self::BHP512Hash, - (sym::BHP768, sym::commit) => Self::BHP768Commit, - (sym::BHP768, sym::hash) => Self::BHP768Hash, - (sym::BHP1024, sym::commit) => Self::BHP1024Commit, - (sym::BHP1024, sym::hash) => Self::BHP1024Hash, - - (sym::Pedersen64, sym::commit) => Self::Pedersen64Commit, - (sym::Pedersen64, sym::hash) => Self::Pedersen64Hash, - (sym::Pedersen128, sym::commit) => Self::Pedersen128Commit, - (sym::Pedersen128, sym::hash) => Self::Pedersen128Hash, - - (sym::Poseidon2, sym::hash) => Self::Poseidon2Hash, - (sym::Poseidon4, sym::hash) => Self::Poseidon4Hash, - (sym::Poseidon8, sym::hash) => Self::Poseidon8Hash, - _ => return None, - }) - } - - /// Returns the number of arguments required by the instruction. - pub fn num_args(&self) -> usize { - match self { - Self::BHP256Commit => BHP256Commit::NUM_ARGS, - Self::BHP256Hash => BHP256Hash::NUM_ARGS, - Self::BHP512Commit => BHP512Commit::NUM_ARGS, - Self::BHP512Hash => BHP512Hash::NUM_ARGS, - Self::BHP768Commit => BHP768Commit::NUM_ARGS, - Self::BHP768Hash => BHP768Hash::NUM_ARGS, - Self::BHP1024Commit => BHP1024Commit::NUM_ARGS, - Self::BHP1024Hash => BHP1024Hash::NUM_ARGS, - - Self::Pedersen64Commit => Pedersen64Commit::NUM_ARGS, - Self::Pedersen64Hash => Pedersen64Hash::NUM_ARGS, - Self::Pedersen128Commit => Pedersen128Commit::NUM_ARGS, - Self::Pedersen128Hash => Pedersen128Hash::NUM_ARGS, - - Self::Poseidon2Hash => Poseidon2Hash::NUM_ARGS, - Self::Poseidon4Hash => Poseidon4Hash::NUM_ARGS, - Self::Poseidon8Hash => Poseidon8Hash::NUM_ARGS, - } - } -} - -/// A core function of a core struct, e.g. `hash` or `commit` -/// Provides required type information to the type checker. -trait CoreFunction { - const NUM_INPUTS: usize; -}