Added chapters 1 and 8

master
peshwar9 4 years ago
parent c45e5ce487
commit 13c7dc4081

BIN
.DS_Store vendored

Binary file not shown.

BIN
chapter1/.DS_Store vendored

Binary file not shown.

Binary file not shown.

@ -0,0 +1,5 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "bench-test"
version = "0.1.0"

@ -0,0 +1,9 @@
[package]
name = "bench-test"
version = "0.1.0"
authors = ["peshwar9 <par.esh1937@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

@ -0,0 +1,27 @@
#![feature(test)]
extern crate test;
pub fn get_fact(n: u64) -> u64 {
if n < 2 {
1
} else {
n * get_fact(n - 1)
}
}
#[cfg(test)]
mod tests {
use super::*;
use test::Bencher;
#[test]
fn it_works() {
assert_eq!(120, get_fact(5));
}
#[bench]
fn bench_get_fact(b: &mut Bencher) {
b.iter(|| get_fact(1234571));
}
}

@ -0,0 +1,3 @@
fn main() {
println!("Hello, world!");
}

Binary file not shown.

@ -0,0 +1,82 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "autocfg"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
[[package]]
name = "chrono"
version = "0.4.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
dependencies = [
"num-integer",
"num-traits",
"time",
]
[[package]]
name = "dep-example"
version = "0.1.0"
dependencies = [
"chrono",
]
[[package]]
name = "libc"
version = "0.2.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005"
[[package]]
name = "num-integer"
version = "0.1.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba"
dependencies = [
"autocfg",
"num-traits",
]
[[package]]
name = "num-traits"
version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
dependencies = [
"autocfg",
]
[[package]]
name = "time"
version = "0.1.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
dependencies = [
"libc",
"winapi",
]
[[package]]
name = "winapi"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"

@ -0,0 +1,10 @@
[package]
name = "dep-example"
version = "0.1.0"
authors = ["peshwar9 <par.esh1937@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
chrono = "*"

@ -0,0 +1,5 @@
use chrono as time;
fn main() {
println!("Hello, time now is {:?}", time::Utc::now());
}

Binary file not shown.

@ -0,0 +1,5 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "feature-test"
version = "0.1.0"

@ -0,0 +1,16 @@
[package]
name = "feature-test"
version = "0.1.0"
authors = ["peshwar9 <par.esh1937@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[[bin]]
name = "featuretest"
path = "src/main.rs"
[features]
feature1 = []
[dependencies]

@ -0,0 +1,19 @@
#[cfg(feature = "feature1")]
pub use self::with_feature_config::execute;
#[cfg(not(feature = "feature1"))]
pub use self::without_feature_config::execute;
#[cfg(feature = "feature1")]
mod with_feature_config {
pub fn execute() {
println!("Executing feature 1");
}
}
#[cfg(not(feature = "feature1"))]
mod without_feature_config {
pub fn execute() {
println!("Not executing feature 1")
}
}

@ -0,0 +1,5 @@
use feature_test::execute;
fn main() {
execute();
}

Binary file not shown.

@ -0,0 +1,5 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "first-program"
version = "0.1.0"

@ -0,0 +1,17 @@
[package]
name = "first-program"
version = "0.1.0"
authors = ["peshwar9 <par.esh1937@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[[bin]]
name = "new-first-program"
path = "src/main.rs"
[[bin]]
name = "new-second-program"
path = "src/second.rs"
[dependencies]

@ -0,0 +1,3 @@
fn main() {
println!("Hello, world!");
}

@ -0,0 +1,3 @@
fn main() {
println!("Hello for the second time!")
}

Binary file not shown.

@ -0,0 +1,5 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "integ-test-example"
version = "0.1.0"

@ -0,0 +1,9 @@
[package]
name = "integ-test-example"
version = "0.1.0"
authors = ["peshwar9 <par.esh1937@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

@ -0,0 +1,42 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="rustdoc">
<title>Docs for integ-test-example crate</title>
</head>
<body class="rustdoc">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<h1 class="title">Docs for integ-test-example crate</h1>
<nav id="TOC"><ul>
<li><a href="#function-signature">0.1 Function signature</a><ul></ul></li>
<li><a href="#example">0.2 Example</a><ul></ul></li></ul></nav><p>This is a project to test <code>rustdoc</code>.</p>
<p><a href="https://www.rust-lang.org">Here is a link!</a></p>
<h2 id="function-signature" class="section-header"><a href="#function-signature">0.1 Function signature</a></h2>
<p>pub fn get_process_id() -&gt; u32 {}</p>
<p>This function returns the process id of the current running executable</p>
<h2 id="example" class="section-header"><a href="#example">0.2 Example</a></h2>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">integ_test_example</span>;
<span class="kw">fn</span> <span class="ident">get_id</span>() <span class="op">-</span><span class="op">&gt;</span> <span class="ident">i32</span> {
<span class="kw">let</span> <span class="ident">my_pid</span> <span class="op">=</span> <span class="ident">get_process_id</span>();
<span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;Process id for current process is: {}&quot;</span>, <span class="ident">my_pid</span>);
}
</pre></div>
</body>
</html>

@ -0,0 +1,24 @@
# Docs for integ-test-example crate
This is a project to test `rustdoc`.
[Here is a link!](https://www.rust-lang.org)
## Function signature
pub fn get_process_id() -> u32 {}
This function returns the process id of the current running executable
## Example
```rust
use integ_test_example;
fn get_id() {
let my_pid = get_process_id();
println!("Process id for current process is: {}", my_pid);
}
```

@ -0,0 +1,17 @@
//! Integration-test-example crate
//!
//! This is a library that contains functions related to dealing with processes
//! , and makes these tasks more convenient.
use std::process;
/// This function gets the process id of the current executable. It returns a non-zero number
/// ```
/// fn get_id() {
/// let x = integ_test_example::get_process_id();
/// println!("{}",x);
/// }
/// ```
pub fn get_process_id() -> u32 {
process::id()
}

@ -0,0 +1,3 @@
fn main() {
println!("Hello, world!");
}

@ -0,0 +1,21 @@
use integ_test_example;
#[test]
fn files_test1() {
assert_ne!(integ_test_example::get_process_id(), 0, "Error in code");
}
/* Hello this is a multiline
* comment
*/
// Hello this is a single line comment
#[test]
fn files_test2() {
assert_eq!(1 + 1, 2);
}
#[test]
#[ignore]
fn process_test1() {
assert!(true);
}

Binary file not shown.

@ -0,0 +1,5 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "my-first-lib"
version = "0.1.0"

@ -0,0 +1,17 @@
[package]
name = "my-first-lib"
version = "0.1.0"
authors = ["peshwar9 <par.esh1937@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[[bin]]
name = "mymain"
path = "src/mymain.rs"
[lib]
crate-type = ["dylib"]
[dependencies]

@ -0,0 +1,12 @@
pub fn hello_from_lib(message: & str) {
println!("Printing Hello {} from library",message);
}
#[cfg(test)]
mod tests {
#[test]
fn it_works() {
assert_eq!(2 + 2, 4);
}
}

@ -0,0 +1,6 @@
use my_first_lib::hello_from_lib;
fn main() {
println!("Going to call library function");
hello_from_lib("Rust system programmer");
}

Binary file not shown.

@ -0,0 +1,5 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "test-example"
version = "0.1.0"

@ -0,0 +1,9 @@
[package]
name = "test-example"
version = "0.1.0"
authors = ["peshwar9 <par.esh1937@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

@ -0,0 +1,19 @@
use std::process;
fn main() {
println!("{}", get_process_id());
}
fn get_process_id() -> u32 {
process::id()
}
#[cfg(test)]
mod tests {
use super::get_process_id;
#[test]
fn test_if_process_id_is_returned() {
assert_ne!(get_process_id(), 0, "There is error in code");
}
}

@ -0,0 +1,7 @@
use my-process-lib;
#[test]
fn test_if_process_id_is_returned() {
assert_eq!(get_process_id(), 0, "There is error in code");
println!("Hello from integration test")
}

Binary file not shown.

@ -0,0 +1,40 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "arc-swap"
version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034"
[[package]]
name = "libc"
version = "0.2.77"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2f96b10ec2560088a8e76961b00d47107b3a625fecb76dedb29ee7ccbf98235"
[[package]]
name = "sec1"
version = "0.1.0"
dependencies = [
"signal-hook",
]
[[package]]
name = "signal-hook"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "604508c1418b99dfe1925ca9224829bb2a8a9a04dda655cc01fcad46f4ab05ed"
dependencies = [
"libc",
"signal-hook-registry",
]
[[package]]
name = "signal-hook-registry"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3e12110bc539e657a646068aaf5eb5b63af9d0c1f7b29c97113fad80e15f035"
dependencies = [
"arc-swap",
"libc",
]

@ -0,0 +1,10 @@
[package]
name = "sec1"
version = "0.1.0"
authors = ["peshwar9 <par.esh1937@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
signal-hook = "0.1.16"

@ -0,0 +1 @@
Hello world

@ -0,0 +1,6 @@
Cargo.lock
Cargo.toml
a.txt
b.txt
src
target

@ -0,0 +1,37 @@
use std::io::Write;
use std::io::{stdin, stdout};
use std::process::Command;
fn main() {
loop {
print!("$");
stdout().flush().unwrap();
let mut user_input = String::new();
stdin()
.read_line(&mut user_input)
.expect("Unable to read user input");
let command_to_execute = user_input.trim();
let command_args: Vec<&str> = command_to_execute.split_whitespace().collect();
let mut child = match command_args[0] {
"show" => match command_args[1] {
"files" => Command::new("ls")
.args(&command_args[2..])
.spawn()
.expect("Unable to execute command"),
"process" => Command::new("ps")
.args(&command_args[2..])
.spawn()
.expect("Unable to execute command"),
_ => Command::new("pwd")
.args(&command_args[2..])
.spawn()
.expect("Unable to execute command"),
},
_ => Command::new(command_args[0])
.args(&command_args[1..])
.spawn()
.expect("Unable to execute command"),
};
child.wait().unwrap();
}
}
Loading…
Cancel
Save