Compare commits
No commits in common. "fcce2500f024a329e093066137054d503cbc3f26" and "3cf32c5a2ff955f71ea285976395ac85cb5e5d1b" have entirely different histories.
fcce2500f0
...
3cf32c5a2f
4 changed files with 2 additions and 47 deletions
4
Cargo.lock
generated
4
Cargo.lock
generated
|
@ -34,7 +34,3 @@ checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rs-unsafe"
|
name = "rs-unsafe"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "what-is"
|
|
||||||
version = "0.1.0"
|
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
[workspace]
|
[workspace]
|
||||||
members = [
|
members = [
|
||||||
".",
|
".",
|
||||||
"members/c-bindings",
|
"members/c-bindings"
|
||||||
"members/what-is",
|
|
||||||
]
|
]
|
||||||
default-members = [
|
default-members = [
|
||||||
".",
|
".",
|
||||||
"members/c-bindings",
|
"members/c-bindings"
|
||||||
"members/what-is",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[package]
|
[package]
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
[package]
|
|
||||||
name = "what-is"
|
|
||||||
version = "0.1.0"
|
|
||||||
edition = "2021"
|
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
||||||
|
|
||||||
[dependencies]
|
|
|
@ -1,31 +0,0 @@
|
||||||
use std::any::{TypeId, type_name};
|
|
||||||
use std::mem::*;
|
|
||||||
use std::fmt::Debug;
|
|
||||||
//* # See what's behind the primitive datatypes of Rust
|
|
||||||
//*
|
|
||||||
//* This Crate shows off, how primitive Types of rust are stored in memory.
|
|
||||||
|
|
||||||
fn main() {
|
|
||||||
let mut items = Vec::new();
|
|
||||||
items.push(true);
|
|
||||||
items.push(false);
|
|
||||||
dump_type::<bool>(items);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn dump_type<T: Debug + 'static>(items: Vec<T>) {
|
|
||||||
println!("Type:\t{}", type_name::<T>());
|
|
||||||
println!("\tID:\t{:?}", TypeId::of::<T>());
|
|
||||||
println!("\tItems:");
|
|
||||||
unsafe {
|
|
||||||
for (index, item) in items.iter().enumerate() {
|
|
||||||
let pointer = item as *const T;
|
|
||||||
let raw_pointer = pointer as *const u8;
|
|
||||||
println!("\t{index:02x}\titem:\t{item:?}\n\
|
|
||||||
\t\tpointer: {:X?}\n\
|
|
||||||
\t\tmemory: {:X?}",
|
|
||||||
pointer,
|
|
||||||
*raw_pointer,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue