From 4374e88f587d6e7a0135011a8d7e2d904e9369df Mon Sep 17 00:00:00 2001 From: Martin Ashby Date: Sun, 9 Oct 2022 13:06:52 +0100 Subject: Simple quine in rust, just because. --- .gitignore | 4 ++++ README.md | 7 +++++++ main.rs | 1 + run.sh | 8 ++++++++ 4 files changed, 20 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 main.rs create mode 100755 run.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..23b9f74 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +quine +main2.rs +quine2 +main3.rs diff --git a/README.md b/README.md new file mode 100644 index 0000000..16577ea --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# quine + +A simple [quine](https://en.wikipedia.org/wiki/Quine_%28computing%29) in rust. + +## usage + +Rust compiler must be installed. md5sum program also required for run script to check the generated sources are the same \ No newline at end of file diff --git a/main.rs b/main.rs new file mode 100644 index 0000000..29fb17b --- /dev/null +++ b/main.rs @@ -0,0 +1 @@ +fn main() { const PGRM : &str = "fn main() { const PGRM : &str = \"%s\"; println!(\"{}\", PGRM.replacen(\"%s\", &PGRM.escape_default().to_string(), 1)); }"; println!("{}", PGRM.replacen("%s", &PGRM.escape_default().to_string(), 1)); } diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..382af98 --- /dev/null +++ b/run.sh @@ -0,0 +1,8 @@ +# Run it once, +rustc -o quine main.rs +./quine > main2.rs +# Run it from the generated sources +rustc -o quine2 main2.rs +./quine2 > main3.rs +# Check it's the same every time +md5sum main.rs main2.rs main3.rs \ No newline at end of file -- cgit v1.2.3-ZIG