Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Analysis
Android Java
Android Kotlin
Assembly
C
C3
Carbon
C++ (Circle)
CIRCT
Clean
CMake
CMakeScript
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Elixir
Erlang
Fortran
F#
Go
Haskell
HLSL
Hook
Hylo
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Nim
Objective-C
Objective-C++
OCaml
OpenCL C
Pascal
Pony
Python
Racket
Ruby
Rust
Snowball
Scala
Solidity
Spice
Swift
LLVM TableGen
Toit
TypeScript Native
V
Vala
Visual Basic
Zig
Javascript
GIMPLE
rust source #1
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
mrustc (master)
rustc 1.0.0
rustc 1.1.0
rustc 1.10.0
rustc 1.11.0
rustc 1.12.0
rustc 1.13.0
rustc 1.14.0
rustc 1.15.1
rustc 1.16.0
rustc 1.17.0
rustc 1.18.0
rustc 1.19.0
rustc 1.2.0
rustc 1.20.0
rustc 1.21.0
rustc 1.22.0
rustc 1.23.0
rustc 1.24.0
rustc 1.25.0
rustc 1.26.0
rustc 1.27.0
rustc 1.27.1
rustc 1.28.0
rustc 1.29.0
rustc 1.3.0
rustc 1.30.0
rustc 1.31.0
rustc 1.32.0
rustc 1.33.0
rustc 1.34.0
rustc 1.35.0
rustc 1.36.0
rustc 1.37.0
rustc 1.38.0
rustc 1.39.0
rustc 1.4.0
rustc 1.40.0
rustc 1.41.0
rustc 1.42.0
rustc 1.43.0
rustc 1.44.0
rustc 1.45.0
rustc 1.45.2
rustc 1.46.0
rustc 1.47.0
rustc 1.48.0
rustc 1.49.0
rustc 1.5.0
rustc 1.50.0
rustc 1.51.0
rustc 1.52.0
rustc 1.53.0
rustc 1.54.0
rustc 1.55.0
rustc 1.56.0
rustc 1.57.0
rustc 1.58.0
rustc 1.59.0
rustc 1.6.0
rustc 1.60.0
rustc 1.61.0
rustc 1.62.0
rustc 1.63.0
rustc 1.64.0
rustc 1.65.0
rustc 1.66.0
rustc 1.67.0
rustc 1.68.0
rustc 1.69.0
rustc 1.7.0
rustc 1.70.0
rustc 1.71.0
rustc 1.72.0
rustc 1.73.0
rustc 1.74.0
rustc 1.75.0
rustc 1.76.0
rustc 1.77.0
rustc 1.78.0
rustc 1.8.0
rustc 1.9.0
rustc beta
rustc nightly
rustc-cg-gcc (master)
x86-64 GCCRS (GCC master)
x86-64 GCCRS (GCCRS master)
x86-64 GCCRS 14.1 (GCC)
Options
Source code
// Type your code here, or load an example. pub enum Either { Code(u8), Page([u8;256]) } impl Either { #[inline] pub fn get_code(&self, index:usize) -> u8 { match self { &Either::Code(code) => code, &Either::Page(page) => page[index] } } } fn main() { println!("{}", cat_table[7].get_code(7)); } const cat_table: [Either;10] = [ Either::Page([96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 80, 54, 54, 54, 65, 54, 54, 54, 50, 51, 54, 64, 54, 49, 54, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 54, 54, 64, 64, 64, 54, 54, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 50, 54, 51, 66, 48, 66, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 50, 64, 51, 64, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 80, 54, 65, 65, 65, 65, 67, 54, 66, 67, 129, 52, 64, 97, 67, 66, 67, 64, 34, 34, 66, 145, 54, 54, 66, 34, 129, 53, 34, 34, 34, 54, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 64, 144, 144, 144, 144, 144, 144, 144, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 64, 145, 145, 145, 145, 145, 145, 145, 145]), Either::Page([144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 144, 145, 144, 145, 144, 145, 145, 145, 144, 144, 145, 144, 145, 144, 144, 145, 144, 144, 144, 145, 145, 144, 144, 144, 144, 145, 144, 144, 145, 144, 144, 144, 145, 145, 145, 144, 144, 145, 144, 144, 145, 144, 145, 144, 145, 144, 144, 145, 144, 145, 145, 144, 145, 144, 144, 145, 144, 144, 144, 145, 144, 145, 144, 144, 145, 145, 129, 144, 145, 145, 145, 129, 129, 129, 129, 144, 146, 145, 144, 146, 145, 144, 146, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 145, 144, 146, 145, 144, 145, 144, 144, 144, 145, 144, 145, 144, 145, 144, 145]), Either::Page([144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 145, 145, 145, 145, 145, 145, 144, 144, 145, 144, 144, 145, 145, 144, 145, 144, 144, 144, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 129, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 66, 66, 66, 66, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 128, 128, 128, 128, 128, 66, 66, 66, 66, 66, 66, 66, 128, 66, 128, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66]), Either::Page([16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 144, 145, 144, 145, 128, 66, 144, 145, 0, 0, 128, 145, 145, 145, 54, 144, 0, 0, 0, 0, 66, 66, 144, 54, 144, 144, 144, 0, 144, 0, 144, 144, 145, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 0, 144, 144, 144, 144, 144, 144, 144, 144, 144, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 144, 145, 145, 144, 144, 144, 145, 145, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 145, 145, 145, 145, 144, 145, 64, 144, 145, 144, 144, 145, 145, 144, 144, 144]), Either::Page([144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 67, 16, 16, 16, 16, 16, 18, 18, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145, 144, 145]), Either::Code(0), Either::Page([97, 97, 97, 97, 97, 97, 64, 64, 64, 54, 54, 65, 54, 54, 67, 67, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 54, 97, 54, 54, 54, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 54, 54, 54, 54, 129, 129, 16, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 54, 129, 16, 16, 16, 16, 16, 16, 16, 97, 67, 16, 16, 16, 16, 16, 16, 128, 128, 16, 16, 67, 16, 16, 16, 16, 129, 129, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 129, 129, 129, 67, 67, 129]), Either::Page([54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, 97, 129, 16, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 16, 16, 16, 16, 16, 16, 16, 16, 16, 128, 128, 67, 54, 54, 54, 128, 0, 0, 16, 65, 65]), Either::Page([129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 16, 16, 16, 16, 128, 16, 16, 16, 16, 16, 16, 16, 16, 16, 128, 16, 16, 16, 128, 16, 16, 16, 16, 16, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 16, 16, 16, 0, 0, 54, 0, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 0, 0, 0, 0, 0, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 66, 129, 129, 129, 129, 129, 129, 0, 97, 97, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, 16, 16, 16, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 97, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16]), Either::Code(0), ]; // If you use `main()`, declare it as `pub` to see it in the output: // pub fn main() { ... }
Become a Patron
Sponsor on GitHub
Donate via PayPal
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
About the author
Statistics
Changelog
Version tree