Compare commits

..

No commits in common. "fcce2500f024a329e093066137054d503cbc3f26" and "3cf32c5a2ff955f71ea285976395ac85cb5e5d1b" have entirely different histories.

4 changed files with 2 additions and 47 deletions

4
Cargo.lock generated
View file

@ -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"

View file

@ -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]

View file

@ -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]

View file

@ -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,
);
}
}
}