Skip to content

Commit

Permalink
Rust/2019/09: add solution
Browse files Browse the repository at this point in the history
  • Loading branch information
Defelo committed Dec 3, 2024
1 parent 3294927 commit 54b5ced
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 3 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,12 @@
|[**21**](https://adventofcode.com/2020/day/21) [<img height=12 src=".assets/py.svg">](Python/2020/21.py "Python solution for 2020/21")|[**22**](https://adventofcode.com/2020/day/22) [<img height=12 src=".assets/py.svg">](Python/2020/22.py "Python solution for 2020/22")|[**23**](https://adventofcode.com/2020/day/23) [<img height=12 src=".assets/py.svg">](Python/2020/23.py "Python solution for 2020/23")|[**24**](https://adventofcode.com/2020/day/24) [<img height=12 src=".assets/py.svg">](Python/2020/24.py "Python solution for 2020/24")|[**25**](https://adventofcode.com/2020/day/25) [<img height=12 src=".assets/py.svg">](Python/2020/25.py "Python solution for 2020/25")|26|27|
|28|29|30|31||||

## [2019](https://adventofcode.com/2019) ([<img height=18 src=".assets/py.svg"> Python](Python/2019): 25/25 | [<img height=18 src=".assets/ua.png"> Uiua](Uiua/2019): 6/25 | [<img height=18 src=".assets/rs.svg"> Rust](Rust/2019): 2/25)
## [2019](https://adventofcode.com/2019) ([<img height=18 src=".assets/py.svg"> Python](Python/2019): 25/25 | [<img height=18 src=".assets/ua.png"> Uiua](Uiua/2019): 6/25 | [<img height=18 src=".assets/rs.svg"> Rust](Rust/2019): 3/25)
|Mo|Tu|We|Th|Fr|Sa|Su|
|-|-|-|-|-|-|-|
|||||||[**1**](https://adventofcode.com/2019/day/1) [<img height=12 src=".assets/py.svg">](Python/2019/01.py "Python solution for 2019/01") [<img height=12 src=".assets/ua.png">](https://uiua.org/pad?src=JnNjCgriipzii5XiiaBAXG4uCgrin5woLystMuKMisO3MykKLyviiaEoLytb4peM4peM4o2iKC4tMuKMisO3M3ziiaUwKV0pCg== "Uiua solution for 2019/01")|
|[**2**](https://adventofcode.com/2019/day/2) [<img height=12 src=".assets/rs.svg">](Rust/2019/02.rs "Rust solution for 2019/02") [<img height=12 src=".assets/py.svg">](Python/2019/02.py "Python solution for 2019/02") [<img height=12 src=".assets/ua.png">](https://uiua.org/pad?src=JnNjCgrilIzilIDilbRJbnRjb2RlCiAgUGFyc2Ug4oaQIG1hcOKHoeKKuOKnuyDiipzii5XiiIjiioJALStAMOKHoTEwLgogIE9wIOKGmiDijaQu4omlMC7il78xMDAKICBNb2RlIOKGmiDil78xMOKMisO34oG_4oqZMTArMgogIFJlYWQg4oaaIOKsmjDiqKwoZ2V04oqZ4peMfOKImHxnZXQrKSDiioMoTW9kZeKKmShnZXR84peMKXxnZXQrKzHiipniipnil4x84ouF4ouF4oqZ4oiYKQogIFdyaXRlIOKGmiBpbnNlcnQ64oqZKOKorCjiipnil4x84o2kLjB8Kykg4oqDKE1vZGXiipkoZ2V0fOKXjCl8Z2V0Kysx4oqZ4oqZ4peMfOKLheKLheKKmeKImCkpCiAgQmluT3AhIOKGmiArNOKKg-KLheKLheKKmeKImFdyaXRl4oqZMuKXoSheMOKKgyhSZWFkMXxSZWFkMCkpCiAgT3BBZGQgIOKGmiBCaW5PcCErCiAgT3BNdWwgIOKGmiBCaW5PcCHDlwogIElucHV0ISAg4oaaICsy4oqD4ouF4ouF4oqZ4oiYV3JpdGXiioMo4ouF4ouF4ouF4oiYfDB84oqZ4oqZ4oiYKSDiipniipniipleMAogIE91dHB1dCEg4oaaICsyIOKKmeKKmeKKmV4wIOKKgyjii4XiipniipniiJh84oqZ4ouF4ouF4peMKSDil6EoUmVhZDApCiAgSm1wISAgICAg4oaaIOKorCgrM-KXjHziipnil4wpXjDil6HiioMoUmVhZDB8UmVhZDEpCiAgSm1wVHJ1ZSAg4oaaIEptcCEo4omgMCkKICBKbXBGYWxzZSDihpogSm1wISg9MCkKICBMdCDihpogQmluT3AhPAogIEVxIOKGmiBCaW5PcCEoPSkKICBCYXNlIOKGmiArMuKKmSs64pehKFJlYWQwKQogIFN0ZXDigLwgIOKGmiDiqKwo4oqZ4oqZ4oqZ4oiYfE9wQWRkfE9wTXVsfElucHV0IV4wfE91dHB1dCFeMXxKbXBUcnVlfEptcEZhbHNlfEx0fEVxfEJhc2UpT3Dil6EoZ2V04oqZ4peMKQogIElzRG9uZSDihpog4omNOTlnZXTiipnil4wKICBSdW7igLwg4oaQIOKXjOKXjOKNoihTdGVw4oC8XjBeMXzCrElzRG9uZSkwIDAK4pSU4pSA4pW0CgpJbnRjb2RlflBhcnNlCgpSdW5XaXRoSW5wdXQg4oaQIOKKouKNnOKKmTBJbnRjb2RlflJ1buKAvCgufOKXjCnijZziio_il4wxXzI6CgriioMo4oqXMTk2OTA3MjDiiaFSdW5XaXRoSW5wdXTima3igoLih6ExMDBfMTAwwqR8UnVuV2l0aElucHV0IDEyXzIpCg== "Uiua solution for 2019/02")|[**3**](https://adventofcode.com/2019/day/3) [<img height=12 src=".assets/py.svg">](Python/2019/03.py "Python solution for 2019/03") [<img height=12 src=".assets/ua.png">](https://uiua.org/pad?src=JnNjCgriiKnCsOKWocKw4oqf4oqc4pah4omgQFxuLgriiKkoXCvilr064oqP4oqZW-KIqeKKuMKv4oq44oeM4oehMl3iipfiipkiTFJVRCLiipwo4oqZ4ouVwrDiioIp4omgQCwuKQoK4pehKOKWveKKuOKIiCkK4oqDKC_ihqcrKzLiiKniipfin5w6fC_ihqfiiaEvK-KMtSkK "Uiua solution for 2019/03")|[**4**](https://adventofcode.com/2019/day/4) [<img height=12 src=".assets/py.svg">](Python/2019/04.py "Python solution for 2019/04") [<img height=12 src=".assets/ua.png">](https://uiua.org/pad?src=JnNjCgriipzii5XiiIgrQDDih6ExMC4K4o2cLeKHocKw4oqfKzBfMQoKQ2hlY2shIOKGkCDihqfiioMoL-KGpV4w4oqc4qe7KzHiirjiipt84omN4oeh4oq44qe74o2PKSDCsOKLlQriiKkvK-KJoeKKg0NoZWNrISg9MilDaGVjayEo4omlMikK "Uiua solution for 2019/04")|[**5**](https://adventofcode.com/2019/day/5) [<img height=12 src=".assets/rs.svg">](Rust/2019/05.rs "Rust solution for 2019/05") [<img height=12 src=".assets/py.svg">](Python/2019/05.py "Python solution for 2019/05") [<img height=12 src=".assets/ua.png">](https://uiua.org/pad?src=JnNjCgrilIzilIDilbRJbnRjb2RlCiAgUGFyc2Ug4oaQIG1hcOKHoeKKuOKnuyDiipzii5XiiIjiioJALStAMOKHoTEwLgogIE9wIOKGmiDijaQu4omlMC7il78xMDAKICBNb2RlIOKGmiDil78xMOKMisO34oG_4oqZMTArMgogIFJlYWQg4oaaIOKsmjDiqKwoZ2V04oqZ4peMfOKImHxnZXQrKSDiioMoTW9kZeKKmShnZXR84peMKXxnZXQrKzHiipniipnil4x84ouF4ouF4oqZ4oiYKQogIFdyaXRlIOKGmiBpbnNlcnQ64oqZKOKorCjiipnil4x84o2kLjB8Kykg4oqDKE1vZGXiipkoZ2V0fOKXjCl8Z2V0Kysx4oqZ4oqZ4peMfOKLheKLheKKmeKImCkpCiAgQmluT3AhIOKGmiArNOKKg-KLheKLheKKmeKImFdyaXRl4oqZMuKXoSheMOKKgyhSZWFkMXxSZWFkMCkpCiAgT3BBZGQgIOKGmiBCaW5PcCErCiAgT3BNdWwgIOKGmiBCaW5PcCHDlwogIElucHV0ISAg4oaaICsy4oqD4ouF4ouF4oqZ4oiYV3JpdGXiioMo4ouF4ouF4ouF4oiYfDB84oqZ4oqZ4oiYKSDiipniipniipleMAogIE91dHB1dCEg4oaaICsyIOKKmeKKmeKKmV4wIOKKgyjii4XiipniipniiJh84oqZ4ouF4ouF4peMKSDil6EoUmVhZDApCiAgSm1wISAgICAg4oaaIOKorCgrM-KXjHziipnil4wpXjDil6HiioMoUmVhZDB8UmVhZDEpCiAgSm1wVHJ1ZSAg4oaaIEptcCEo4omgMCkKICBKbXBGYWxzZSDihpogSm1wISg9MCkKICBMdCDihpogQmluT3AhPAogIEVxIOKGmiBCaW5PcCEoPSkKICBCYXNlIOKGmiArMuKKmSs64pehKFJlYWQwKQogIFN0ZXDigLwgIOKGmiDiqKwo4oqZ4oqZ4oqZ4oiYfE9wQWRkfE9wTXVsfElucHV0IV4wfE91dHB1dCFeMXxKbXBUcnVlfEptcEZhbHNlfEx0fEVxfEJhc2UpT3Dil6EoZ2V04oqZ4peMKQogIElzRG9uZSDihpog4omNOTlnZXTiipnil4wKICBSdW7igLwg4oaQIOKXjOKXjOKNoihTdGVw4oC8XjBeMXzCrElzRG9uZSkwIDAK4pSU4pSA4pW0CgpJbnRjb2RlflBhcnNlCgriiKko4o2kLi_Dlz0wOsKw4oqCIOKLheKKmeKXjEludGNvZGV-UnVu4oC8KCx84oqCKeKKmVtdOik1LDEK "Uiua solution for 2019/05")|[**6**](https://adventofcode.com/2019/day/6) [<img height=12 src=".assets/py.svg">](Python/2019/06.py "Python solution for 2019/06")|[**7**](https://adventofcode.com/2019/day/7) [<img height=12 src=".assets/py.svg">](Python/2019/07.py "Python solution for 2019/07")|[**8**](https://adventofcode.com/2019/day/8) [<img height=12 src=".assets/py.svg">](Python/2019/08.py "Python solution for 2019/08")|
|[**9**](https://adventofcode.com/2019/day/9) [<img height=12 src=".assets/py.svg">](Python/2019/09.py "Python solution for 2019/09") [<img height=12 src=".assets/ua.png">](https://uiua.org/pad?src=JnNjCgrilIzilIDilbRJbnRjb2RlCiAgUGFyc2Ug4oaQIG1hcOKHoeKKuOKnuyDiipzii5XiiIjiioJALStAMOKHoTEwLgogIE9wIOKGmiDijaQu4omlMC7il78xMDAKICBNb2RlIOKGmiDil78xMOKMisO34oG_4oqZMTArMgogIFJlYWQg4oaaIOKsmjDiqKwoZ2V04oqZ4peMfOKImHxnZXQrKSDiioMoTW9kZeKKmShnZXR84peMKXxnZXQrKzHiipniipnil4x84ouF4ouF4oqZ4oiYKQogIFdyaXRlIOKGmiBpbnNlcnQ64oqZKOKorCjiipnil4x84o2kLjB8Kykg4oqDKE1vZGXiipkoZ2V0fOKXjCl8Z2V0Kysx4oqZ4oqZ4peMfOKLheKLheKKmeKImCkpCiAgQmluT3AhIOKGmiArNOKKg-KLheKLheKKmeKImFdyaXRl4oqZMuKXoSheMOKKgyhSZWFkMXxSZWFkMCkpCiAgT3BBZGQgIOKGmiBCaW5PcCErCiAgT3BNdWwgIOKGmiBCaW5PcCHDlwogIElucHV0ISAg4oaaICsy4oqD4ouF4ouF4oqZ4oiYV3JpdGXiioMo4ouF4ouF4ouF4oiYfDB84oqZ4oqZ4oiYKSDiipniipniipleMAogIE91dHB1dCEg4oaaICsyIOKKmeKKmeKKmV4wIOKKgyjii4XiipniipniiJh84oqZ4ouF4ouF4peMKSDil6EoUmVhZDApCiAgSm1wISAgICAg4oaaIOKorCgrM-KXjHziipnil4wpXjDil6HiioMoUmVhZDB8UmVhZDEpCiAgSm1wVHJ1ZSAg4oaaIEptcCEo4omgMCkKICBKbXBGYWxzZSDihpogSm1wISg9MCkKICBMdCDihpogQmluT3AhPAogIEVxIOKGmiBCaW5PcCEoPSkKICBCYXNlIOKGmiArMuKKmSs64pehKFJlYWQwKQogIFN0ZXDigLwgIOKGmiDiqKwo4oqZ4oqZ4oqZ4oiYfE9wQWRkfE9wTXVsfElucHV0IV4wfE91dHB1dCFeMXxKbXBUcnVlfEptcEZhbHNlfEx0fEVxfEJhc2UpT3Dil6EoZ2V04oqZ4peMKQogIElzRG9uZSDihpog4omNOTlnZXTiipnil4wKICBSdW7igLwg4oaQIOKXjOKXjOKNoihTdGVw4oC8XjBeMXzCrElzRG9uZSkwIDAK4pSU4pSA4pW0CgpJbnRjb2RlflBhcnNlCgosMuKKmTEK4oqZ4peM4peM4oipSW50Y29kZX5SdW7igLwoLnziiJgpCg== "Uiua solution for 2019/09")|[**10**](https://adventofcode.com/2019/day/10) [<img height=12 src=".assets/py.svg">](Python/2019/10.py "Python solution for 2019/10")|[**11**](https://adventofcode.com/2019/day/11) [<img height=12 src=".assets/py.svg">](Python/2019/11.py "Python solution for 2019/11")|[**12**](https://adventofcode.com/2019/day/12) [<img height=12 src=".assets/py.svg">](Python/2019/12.py "Python solution for 2019/12")|[**13**](https://adventofcode.com/2019/day/13) [<img height=12 src=".assets/py.svg">](Python/2019/13.py "Python solution for 2019/13")|[**14**](https://adventofcode.com/2019/day/14) [<img height=12 src=".assets/py.svg">](Python/2019/14.py "Python solution for 2019/14")|[**15**](https://adventofcode.com/2019/day/15) [<img height=12 src=".assets/py.svg">](Python/2019/15.py "Python solution for 2019/15")|
|[**9**](https://adventofcode.com/2019/day/9) [<img height=12 src=".assets/rs.svg">](Rust/2019/09.rs "Rust solution for 2019/09") [<img height=12 src=".assets/py.svg">](Python/2019/09.py "Python solution for 2019/09") [<img height=12 src=".assets/ua.png">](https://uiua.org/pad?src=JnNjCgrilIzilIDilbRJbnRjb2RlCiAgUGFyc2Ug4oaQIG1hcOKHoeKKuOKnuyDiipzii5XiiIjiioJALStAMOKHoTEwLgogIE9wIOKGmiDijaQu4omlMC7il78xMDAKICBNb2RlIOKGmiDil78xMOKMisO34oG_4oqZMTArMgogIFJlYWQg4oaaIOKsmjDiqKwoZ2V04oqZ4peMfOKImHxnZXQrKSDiioMoTW9kZeKKmShnZXR84peMKXxnZXQrKzHiipniipnil4x84ouF4ouF4oqZ4oiYKQogIFdyaXRlIOKGmiBpbnNlcnQ64oqZKOKorCjiipnil4x84o2kLjB8Kykg4oqDKE1vZGXiipkoZ2V0fOKXjCl8Z2V0Kysx4oqZ4oqZ4peMfOKLheKLheKKmeKImCkpCiAgQmluT3AhIOKGmiArNOKKg-KLheKLheKKmeKImFdyaXRl4oqZMuKXoSheMOKKgyhSZWFkMXxSZWFkMCkpCiAgT3BBZGQgIOKGmiBCaW5PcCErCiAgT3BNdWwgIOKGmiBCaW5PcCHDlwogIElucHV0ISAg4oaaICsy4oqD4ouF4ouF4oqZ4oiYV3JpdGXiioMo4ouF4ouF4ouF4oiYfDB84oqZ4oqZ4oiYKSDiipniipniipleMAogIE91dHB1dCEg4oaaICsyIOKKmeKKmeKKmV4wIOKKgyjii4XiipniipniiJh84oqZ4ouF4ouF4peMKSDil6EoUmVhZDApCiAgSm1wISAgICAg4oaaIOKorCgrM-KXjHziipnil4wpXjDil6HiioMoUmVhZDB8UmVhZDEpCiAgSm1wVHJ1ZSAg4oaaIEptcCEo4omgMCkKICBKbXBGYWxzZSDihpogSm1wISg9MCkKICBMdCDihpogQmluT3AhPAogIEVxIOKGmiBCaW5PcCEoPSkKICBCYXNlIOKGmiArMuKKmSs64pehKFJlYWQwKQogIFN0ZXDigLwgIOKGmiDiqKwo4oqZ4oqZ4oqZ4oiYfE9wQWRkfE9wTXVsfElucHV0IV4wfE91dHB1dCFeMXxKbXBUcnVlfEptcEZhbHNlfEx0fEVxfEJhc2UpT3Dil6EoZ2V04oqZ4peMKQogIElzRG9uZSDihpog4omNOTlnZXTiipnil4wKICBSdW7igLwg4oaQIOKXjOKXjOKNoihTdGVw4oC8XjBeMXzCrElzRG9uZSkwIDAK4pSU4pSA4pW0CgpJbnRjb2RlflBhcnNlCgosMuKKmTEK4oqZ4peM4peM4oipSW50Y29kZX5SdW7igLwoLnziiJgpCg== "Uiua solution for 2019/09")|[**10**](https://adventofcode.com/2019/day/10) [<img height=12 src=".assets/py.svg">](Python/2019/10.py "Python solution for 2019/10")|[**11**](https://adventofcode.com/2019/day/11) [<img height=12 src=".assets/py.svg">](Python/2019/11.py "Python solution for 2019/11")|[**12**](https://adventofcode.com/2019/day/12) [<img height=12 src=".assets/py.svg">](Python/2019/12.py "Python solution for 2019/12")|[**13**](https://adventofcode.com/2019/day/13) [<img height=12 src=".assets/py.svg">](Python/2019/13.py "Python solution for 2019/13")|[**14**](https://adventofcode.com/2019/day/14) [<img height=12 src=".assets/py.svg">](Python/2019/14.py "Python solution for 2019/14")|[**15**](https://adventofcode.com/2019/day/15) [<img height=12 src=".assets/py.svg">](Python/2019/15.py "Python solution for 2019/15")|
|[**16**](https://adventofcode.com/2019/day/16) [<img height=12 src=".assets/py.svg">](Python/2019/16.py "Python solution for 2019/16")|[**17**](https://adventofcode.com/2019/day/17) [<img height=12 src=".assets/py.svg">](Python/2019/17.py "Python solution for 2019/17")|[**18**](https://adventofcode.com/2019/day/18) [<img height=12 src=".assets/py.svg">](Python/2019/18.py "Python solution for 2019/18")|[**19**](https://adventofcode.com/2019/day/19) [<img height=12 src=".assets/py.svg">](Python/2019/19.py "Python solution for 2019/19")|[**20**](https://adventofcode.com/2019/day/20) [<img height=12 src=".assets/py.svg">](Python/2019/20.py "Python solution for 2019/20")|[**21**](https://adventofcode.com/2019/day/21) [<img height=12 src=".assets/py.svg">](Python/2019/21.py "Python solution for 2019/21")|[**22**](https://adventofcode.com/2019/day/22) [<img height=12 src=".assets/py.svg">](Python/2019/22.py "Python solution for 2019/22")|
|[**23**](https://adventofcode.com/2019/day/23) [<img height=12 src=".assets/py.svg">](Python/2019/23.py "Python solution for 2019/23")|[**24**](https://adventofcode.com/2019/day/24) [<img height=12 src=".assets/py.svg">](Python/2019/24.py "Python solution for 2019/24")|[**25**](https://adventofcode.com/2019/day/25) [<img height=12 src=".assets/py.svg">](Python/2019/25.py "Python solution for 2019/25")|26|27|28|29|
|30|31||||||
Expand Down
24 changes: 24 additions & 0 deletions Rust/2019/09.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#![feature(test)]

use aoc::intcode::{get_output, Int};

type Input = Vec<Int>;

fn setup(input: &str) -> Input {
input
.split(',')
.map(|x| x.trim().parse().unwrap())
.collect()
}

fn part1(input: &Input) -> Int {
let output = get_output(input.iter().copied(), [1]).unwrap();
*output.last().unwrap()
}

fn part2(input: &Input) -> Int {
let output = get_output(input.iter().copied(), [2]).unwrap();
output[0]
}

aoc::main!(2019, 9);
2 changes: 1 addition & 1 deletion Rust/2019/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ aoc::year! {
// "06.rs",
// "07.rs",
// "08.rs",
// "09.rs",
"09.rs",
// "10.rs",
// "11.rs",
// "12.rs",
Expand Down
3 changes: 3 additions & 0 deletions Rust/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ path = "2019/02.rs"
[[bin]]
name = "2019_05"
path = "2019/05.rs"
[[bin]]
name = "2019_09"
path = "2019/09.rs"

# 2020
[[bin]]
Expand Down
12 changes: 12 additions & 0 deletions Rust/lib/intcode.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ pub fn get_output(
pub struct Vm<I: Input, O: Output> {
mem: FxHashMap<Int, Int>,
ip: Int,
base: Int,
inp: I,
out: O,
}
Expand All @@ -39,6 +40,7 @@ impl<I: Input, O: Output> Vm<I, O> {
.map(|(i, x)| (i as _, x))
.collect(),
ip: 0,
base: 0,
inp: input,
out: output,
}
Expand Down Expand Up @@ -106,6 +108,10 @@ impl<I: Input, O: Output> Vm<I, O> {
self.write_arg(out, (self.read_arg(in1) == self.read_arg(in2)) as _)?;
self.ip += 4;
}
Op::Base(offset) => {
self.base += self.read_arg(offset);
self.ip += 2;
}
Op::Halt => return Ok(false),
}

Expand All @@ -132,6 +138,7 @@ impl<I: Input, O: Output> Vm<I, O> {
},
7 => Op::Lt { in1, in2, out },
8 => Op::Eq { in1, in2, out },
9 => Op::Base(in1),
99 => Op::Halt,
code => return Err(Error::InvalidOpcode { ip: self.ip, code }),
})
Expand All @@ -143,6 +150,7 @@ impl<I: Input, O: Output> Vm<I, O> {
Ok(match mode {
0 => Arg::Addr(arg),
1 => Arg::Immediate(arg),
2 => Arg::Relative(arg),
_ => {
return Err(Error::InvalidArgMode {
ip: self.ip,
Expand All @@ -157,13 +165,15 @@ impl<I: Input, O: Output> Vm<I, O> {
match arg {
Arg::Addr(addr) => self.read(addr),
Arg::Immediate(value) => value,
Arg::Relative(offset) => self.read(self.base + offset),
}
}

fn write_arg(&mut self, arg: Arg, value: Int) -> Result<Int, Error<I::Error, O::Error>> {
Ok(match arg {
Arg::Addr(addr) => self.write(addr, value),
Arg::Immediate(_) => return Err(Error::WriteImmediate { ip: self.ip }),
Arg::Relative(offset) => self.write(self.base + offset, value),
})
}
}
Expand All @@ -178,13 +188,15 @@ enum Op {
Jne { arg: Arg, addr: Arg }, // 6
Lt { in1: Arg, in2: Arg, out: Arg }, // 7
Eq { in1: Arg, in2: Arg, out: Arg }, // 8
Base(Arg), // 9
Halt, // 99
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
enum Arg {
Addr(Int),
Immediate(Int),
Relative(Int),
}

#[derive(Debug, Error)]
Expand Down

0 comments on commit 54b5ced

Please sign in to comment.