From 510dfa2d946c90e1166a66dd6ddbb07586e1b7dd Mon Sep 17 00:00:00 2001 From: Werner <26710260+GuilhermeWerner@users.noreply.github.com> Date: Sun, 2 Jan 2022 12:09:23 -0300 Subject: [PATCH 1/3] Remove experimental features --- Examples/Assembler.rs | 27 ------ Examples/Assembly.bin | Bin 318 -> 0 bytes Examples/Loader.rs | 21 ----- Source/Assembly.rs | 23 ----- Source/Instruction.rs | 28 ------ Source/InstructionTable.rs | 180 ------------------------------------- Source/PayloadType.rs | 10 --- Source/lib.rs | 16 ---- 8 files changed, 305 deletions(-) delete mode 100644 Examples/Assembler.rs delete mode 100644 Examples/Assembly.bin delete mode 100644 Examples/Loader.rs delete mode 100644 Source/Assembly.rs delete mode 100644 Source/Instruction.rs delete mode 100644 Source/InstructionTable.rs delete mode 100644 Source/PayloadType.rs diff --git a/Examples/Assembler.rs b/Examples/Assembler.rs deleted file mode 100644 index 867ce52..0000000 --- a/Examples/Assembler.rs +++ /dev/null @@ -1,27 +0,0 @@ -#![allow(non_snake_case)] - -use ::Machine::*; -use bincode::Options; -use std::fs; - -fn main() { - let assembly = Assembly { - name: "Serialization Example".into(), - version: 1, - source: AssemblySource { - text: include_bytes!("Bytecode.bin").to_vec(), - data: Vec::new(), - }, - }; - - let options = bincode::options() - .with_big_endian() - .with_fixint_encoding() - .allow_trailing_bytes(); - - let encoded: Vec = options.serialize(&assembly).unwrap(); - fs::write("Examples/Assembly.bin", &encoded).unwrap(); - - //let decoded: Assembly = bincode::deserialize(&encoded[..]).unwrap(); - //assert_eq!(assembly, decoded); -} diff --git a/Examples/Assembly.bin b/Examples/Assembly.bin deleted file mode 100644 index 71ef9c33e5a44adb0eddb6dc82a906cc9dec1141..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmZQz00YtB)S}G9oXo1klFa-(1=oti+=84`Mu;S%0GJWL1mrp}Ffs$F5Ega@5KSKV SFL=vDaIMQ)7xJ_Z9$f$qtqptt diff --git a/Examples/Loader.rs b/Examples/Loader.rs deleted file mode 100644 index c246630..0000000 --- a/Examples/Loader.rs +++ /dev/null @@ -1,21 +0,0 @@ -#![allow(non_snake_case)] - -use ::Machine::*; -use bincode::Options; -use std::fs; - -fn main() { - let encoded: Vec = fs::read("Examples/Assembly.bin").unwrap(); - - let options = bincode::options() - .with_big_endian() - .with_fixint_encoding() - .allow_trailing_bytes(); - - let assembly: Assembly = options.deserialize(&encoded[..]).unwrap(); - - let mut vm = Machine::New([0, 0, 0, 0]); - - vm.LoadProgram(&assembly.source.text); - vm.Execute(); -} diff --git a/Source/Assembly.rs b/Source/Assembly.rs deleted file mode 100644 index b1af3a5..0000000 --- a/Source/Assembly.rs +++ /dev/null @@ -1,23 +0,0 @@ -use serde::{Deserialize, Serialize}; -use std::borrow::Cow; - -#[derive(Debug, PartialEq, Serialize, Deserialize)] -pub struct Assembly { - /// Assembly name. - pub name: Cow<'static, str>, - - /// Assembly version. - pub version: u8, - - /// Assembly bytecode source. - pub source: AssemblySource, -} - -#[derive(Debug, PartialEq, Serialize, Deserialize)] -pub struct AssemblySource { - /// Source instructions. - pub text: Vec, - - /// Statics and embed data. - pub data: Vec, -} diff --git a/Source/Instruction.rs b/Source/Instruction.rs deleted file mode 100644 index 77cad1b..0000000 --- a/Source/Instruction.rs +++ /dev/null @@ -1,28 +0,0 @@ -use crate::Types::Byte; -use crate::{Machine, PayloadType}; - -pub struct Instruction { - pub code: Byte, - pub name: String, - pub payload: PayloadType, - pub function: InstructionFunction, -} - -pub type InstructionFunction = fn(machine: &mut Machine) -> bool; - -impl Instruction { - #[inline] - pub fn New( - code: Byte, - name: &str, - payload: PayloadType, - function: InstructionFunction, - ) -> Self { - Self { - code, - name: name.to_string(), - payload, - function, - } - } -} diff --git a/Source/InstructionTable.rs b/Source/InstructionTable.rs deleted file mode 100644 index 8c0829d..0000000 --- a/Source/InstructionTable.rs +++ /dev/null @@ -1,180 +0,0 @@ -use crate::Instructions::*; -use crate::Operations::*; -use crate::Types::Byte; -use crate::{Instruction, PayloadType}; -use std::collections::HashMap; - -pub struct InstructionTable { - table: HashMap, -} - -impl Default for InstructionTable { - fn default() -> Self { - Self { - table: HashMap::new(), - } - } -} - -impl InstructionTable { - #[inline] - #[rustfmt::skip] - pub fn New() -> Self { - let mut table = InstructionTable::default(); - - table.Insert(Instruction::New(NOP, "nop",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LDR_B, "ldr b",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LDR_H, "ldr h",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LDR_W, "ldr w",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LDR_D, "ldr d",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LDR_Q, "ldr q",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LDA_B, "lda b",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LDA_H, "lda h",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LDA_W, "lda w",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LDA_D, "lda d",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LDA_Q, "lda q",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LDI_B, "ldi b",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LDI_H, "ldi h",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LDI_W, "ldi w",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LDI_D, "ldi d",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LDI_Q, "ldi q",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(STR_B, "str b",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(STR_H, "str h",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(STR_W, "str w",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(STR_D, "str d",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(STR_Q, "str q",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(STA_B, "sta b",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(STA_H, "sta h",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(STA_W, "sta w",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(STA_D, "sta d",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(STA_Q, "sta q",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(STI_B, "sti b",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(STI_H, "sti h",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(STI_W, "sti w",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(STI_D, "sti d",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(STI_Q, "sti q",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(INC, "inc",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(DEC, "dec",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(MOV, "mov",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(SWP, "swp",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(JMP, "jmp",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(JMZ, "jmz",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(JEQ, "jeq",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(JNE, "jne",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(JLT, "jlt",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(JLE, "jle",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(JGT, "jgt",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(JGE, "jge",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(CALL, "all",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(RET, "ret",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(PUSH_B, "ush b",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(PUSH_H, "ush h",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(PUSH_W, "ush w",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(PUSH_D, "ush d",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(PUSH_Q, "ush q",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(PEEK_B, "eek b",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(PEEK_H, "eek h",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(PEEK_W, "eek w",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(PEEK_D, "eek d",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(PEEK_Q, "eek q",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(POP_B, "pop b",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(POP_H, "pop h",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(POP_W, "pop w",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(POP_D, "pop d",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(POP_Q, "pop q",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(NEG, "neg",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(ADD_U8, "add u8",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(ADD_U16, "add u16",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(ADD_U32, "add u32",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(ADD_U64, "add u64",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(ADD_U128, "add u128",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(ADD_I8, "add i8",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(ADD_I16, "add i16",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(ADD_I32, "add i32",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(ADD_I64, "add i64",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(ADD_I128, "add i128",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(ADD_F32, "add f32",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(ADD_F64, "add f64",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(SUB_U8, "sub u8",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(SUB_U16, "sub u16",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(SUB_U32, "sub u32",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(SUB_U64, "sub u64",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(SUB_U128, "sub u128",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(SUB_I8, "sub i8",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(SUB_I16, "sub i16",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(SUB_I32, "sub i32",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(SUB_I64, "sub i64",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(SUB_I128, "sub i128",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(SUB_F32, "sub f32",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(SUB_F64, "sub f64",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(MUL_U8, "mul u8",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(MUL_U16, "mul u16",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(MUL_U32, "mul u32",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(MUL_U64, "mul u64",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(MUL_U128, "mul u128",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(MUL_I8, "mul i8",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(MUL_I16, "mul i16",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(MUL_I32, "mul i32",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(MUL_I64, "mul i64",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(MUL_I128, "mul i128",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(MUL_F32, "mul f32",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(MUL_F64, "mul f64",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(DIV_U8, "div u8",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(DIV_U16, "div u16",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(DIV_U32, "div u32",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(DIV_U64, "div u64",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(DIV_U128, "div u128",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(DIV_I8, "div i8",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(DIV_I16, "div i16",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(DIV_I32, "div i32",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(DIV_I64, "div i64",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(DIV_I128, "div i128",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(DIV_F32, "div f32",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(DIV_F64, "div f64",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(REM_U8, "rem u8",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(REM_U16, "rem u16",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(REM_U32, "rem u32",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(REM_U64, "rem u64",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(REM_U128, "rem u128",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(REM_I8, "rem i8",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(REM_I16, "rem i16",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(REM_I32, "rem i32",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(REM_I64, "rem i64",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(REM_I128, "rem i128",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(REM_F32, "rem f32",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(REM_F64, "rem f64",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(AND, "and",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(OR, " or",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(XOR, "xor",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(NOT, "not",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(NAND, "and",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(NOR, "nor",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(XNOR, "nor",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(SHL, "shl",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(SHR, "shr",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(EQ, " eq",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(NE, " ne",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LT, " lt",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(LE, " le",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(GT, " gt",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(GE, " ge",PayloadType::Nothing, Nothing)); - table.Insert(Instruction::New(HLT, "hlt",PayloadType::Nothing, Nothing)); - - table - } - - #[inline] - pub fn IsEmpty(&self) -> bool { - self.table.is_empty() - } - - #[inline] - pub fn Get(&self, code: Byte) -> Option<&Instruction> { - self.table.get(&code) - } - - #[inline] - pub fn Insert(&mut self, instruction: Instruction) { - self.table.insert(instruction.code, instruction); - } -} diff --git a/Source/PayloadType.rs b/Source/PayloadType.rs deleted file mode 100644 index 58026cd..0000000 --- a/Source/PayloadType.rs +++ /dev/null @@ -1,10 +0,0 @@ - -pub enum PayloadType { - Nothing, - Register, - RegisterAddress, - AddressRegister, - TwoRegisters, - ThreeRegisters, - FourRegisters, -} diff --git a/Source/lib.rs b/Source/lib.rs index 06de90d..c9891f8 100644 --- a/Source/lib.rs +++ b/Source/lib.rs @@ -5,11 +5,6 @@ mod Instructions; pub mod Operations; pub mod Payload; -pub mod Types; - -#[path = "Assembly.rs"] -mod _Assembly; -pub use self::_Assembly::*; #[path = "Heap.rs"] mod _Heap; @@ -23,10 +18,6 @@ pub use self::_Limits::*; mod _Machine; pub use self::_Machine::*; -#[path = "PayloadType.rs"] -mod _PayloadType; -pub use self::_PayloadType::*; - #[path = "Registry.rs"] mod _Registry; pub use self::_Registry::*; @@ -35,10 +26,3 @@ pub use self::_Registry::*; mod _Stack; pub use self::_Stack::*; -#[path = "Instruction.rs"] -mod _Instruction; -pub use self::_Instruction::*; - -#[path = "InstructionTable.rs"] -mod _InstructionTable; -pub use self::_InstructionTable::*; From 07e5db7474e84396441b10d58021362110a54680 Mon Sep 17 00:00:00 2001 From: Werner <26710260+GuilhermeWerner@users.noreply.github.com> Date: Sun, 2 Jan 2022 14:36:37 -0300 Subject: [PATCH 2/3] Update Cargo.toml --- Cargo.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 3795ed4..2418cbf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,6 @@ path = "Source/lib.rs" [dependencies] bincode = "1.3.3" -bitflags = "1.3.2" serde = { version = "1.0", features = ["derive"] } [[example]] From 41bef40b4d2be41b38ed32d66378e48b8916b61c Mon Sep 17 00:00:00 2001 From: Werner <26710260+GuilhermeWerner@users.noreply.github.com> Date: Sun, 2 Jan 2022 14:36:51 -0300 Subject: [PATCH 3/3] Update source files --- Source/Heap.rs | 2 +- Source/Limits.rs | 6 ++---- Source/Machine.rs | 3 +-- Source/Payload.rs | 2 +- Source/Registry.rs | 2 +- Source/Stack.rs | 2 +- Source/lib.rs | 3 +++ 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Source/Heap.rs b/Source/Heap.rs index acbb594..6c864e2 100644 --- a/Source/Heap.rs +++ b/Source/Heap.rs @@ -1,4 +1,4 @@ -use crate::Types::*; +use crate::{Byte, DWord, Half, QWord, Word}; use std::mem; pub struct Heap { diff --git a/Source/Limits.rs b/Source/Limits.rs index 99f1412..fc820d8 100644 --- a/Source/Limits.rs +++ b/Source/Limits.rs @@ -1,5 +1,3 @@ pub const REGISTER_COUNT: usize = 16; - -pub const STACK_SIZE: usize = 64; - -pub const HEAP_LIMIT: usize = 256; +pub const STACK_SIZE: usize = 512; +pub const HEAP_LIMIT: usize = 4096; diff --git a/Source/Machine.rs b/Source/Machine.rs index 626b038..2face73 100644 --- a/Source/Machine.rs +++ b/Source/Machine.rs @@ -1,7 +1,6 @@ use crate::Instructions::*; use crate::Operations::*; -use crate::Types::*; -use crate::{Heap, Registry, Stack, HEAP_LIMIT, STACK_SIZE}; +use crate::{Byte, Half, Heap, Registry, Stack, Word, HEAP_LIMIT, STACK_SIZE}; #[allow(dead_code)] pub struct Machine { diff --git a/Source/Payload.rs b/Source/Payload.rs index 1fd2728..9421176 100644 --- a/Source/Payload.rs +++ b/Source/Payload.rs @@ -1,5 +1,5 @@ use crate::Machine; -use crate::Types::{Byte, Word}; +use crate::{Byte, Word}; pub type Register = Byte; pub type RegisterAddress = (Byte, Word); diff --git a/Source/Registry.rs b/Source/Registry.rs index 0b37335..bcfeb9c 100644 --- a/Source/Registry.rs +++ b/Source/Registry.rs @@ -1,4 +1,4 @@ -use crate::Types::*; +use crate::Word; use crate::REGISTER_COUNT; #[derive(Default)] diff --git a/Source/Stack.rs b/Source/Stack.rs index 3d12e23..03d2a5d 100644 --- a/Source/Stack.rs +++ b/Source/Stack.rs @@ -1,4 +1,4 @@ -use crate::Types::*; +use crate::{Byte, DWord, QWord, Half,Word}; use std::mem; pub struct Stack { diff --git a/Source/lib.rs b/Source/lib.rs index c9891f8..9cfed35 100644 --- a/Source/lib.rs +++ b/Source/lib.rs @@ -26,3 +26,6 @@ pub use self::_Registry::*; mod _Stack; pub use self::_Stack::*; +#[path = "Types.rs"] +mod _Types; +pub use self::_Types::*;