ডেভসংকেত

রাস্ট

রাস্ট হচ্ছে মেমরি সেইফ কম্পাইলড্ ল্যাংঙ্গুয়েজ যার পারফর্মেন্স সি/সি++ এর কাছাকাছি বা কখনো কখনো তাদের থেকে ভালো

কন্ট্রিবিউটর

  • mdgaziur

শেয়ার করুন

কার্গো

  • নতুন প্রজেক্ট তৈরি করা

    cargo init YOUR_PROJECT
  • কোনো CLI ইন্সটল করা

    cargo install YOUR_CLI
  • git ছাড়া প্রজেক্ট তৈরি করা

    cargo init YOUR_PROJECT --vcs none
  • কারেন্ট ডাইরেক্টরিতে প্রজেক্ট তৈরি করা

    cargo init .
  • প্রজেক্ট বিল্ড করা(debug)

    cargo build
  • প্রজেক্ট বিল্ড করা(release)

    cargo build --release
  • টেস্ট রান করা

    cargo test
  • প্রজেক্ট রান করা(debug)

    cargo run
  • প্রজেক্ট রান করা(release)

    cargo run --release
  • অন্য টার্গেট এর জন্য কম্পাইল করা

    cargo build --target=YOUR-TARGET
  • প্রজেক্টের docs জেনারেট করা

    cargo doc

rustup

  • nightly toolchain ব্যবহার করা

    rustup default nightly
  • toolchain আপডেট করা

    rustup update toolchain
  • Target ইনস্টল করা

    rustup target add TARGET

Traits

  • আর্গুমেন্টে String এবং str দুটাই অ্যালাউ করা

    fn the_function(arg: impl AsRef<str>) {
    	//do something
    }
  • struct এর জন্য কোনো trait ইমপ্লিমেন্ট করা

    impl SomeTrait for SomeStruct {
    	// Trait stuff here
    }
  • trait ডিক্লেয়ার করা

    trait SomeTrait {
    	// Your trait stuff here
    }

General

  • Panicking

    panic!("Houston, we have a problem");
  • Match

    match Somestuff {
    	2 => println!("It's 2!"),
    	_ => println!("It's something else")
    }
  • Struct

    struct SomeStruct {
    	some_private_value: String,
    	pub some_public_value: u64
    }
  • Implementing struct

    impl SomeStruct {
    	pub fn new() {}
    }

Cargo.toml

  • কোনো ডিপেন্ডেন্সির নামসহ ভার্সন

    CRATE = "CRATE_VERSION"
  • ক্রেটের নির্দিষ্ট ফিচার ব্যবহার করা

    CRATE = { version = "VERSION", features = ["FEATURE-1"] }
  • লিংক টাইম অপ্টিমাইজেশন ব্যবহার করা(release বিল্ড)

    [profile.release]
    lto=true
  • লিংক টাইম অপ্টিমাইজেশন ব্যবহার করা(debug বিল্ড)

    [profile.debug]
    lto=true

বিভিন্ন রিসোর্স

  • The Book

    https://docs.rust-lang.org/book
  • Package registry

    https://crates.io
  • Crates documentations

    https://docs.rs

টেস্টিং

  • টেস্ট মডিউল

    #[cfg(test)]
    mod test{
    	#[test]
    	fn test() {
    		assert_eq!(2+2, 4);
    	}
    }

ডেভসংকেত সম্পর্কে

ডেভসংকেত এর লক্ষ্য হচ্ছে বাংলাতে একটা বড় চিটশিটের ভান্ডার গড়ে তোলা। এটা সম্পূর্ণ স্বাধীন এবং ওপেন সোর্স গিটহাব অর্গানাইজেশন।

স্পন্সর