ডেভসংকেত

রাস্ট

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

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

    শেয়ার করুন

    কার্গো

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

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

    ডেটা টাইপ

    • অক্ষর

      char
    • স্ট্রিং

      String
    • ইন্টিজার টাইপ (i8 = 8 bit, i16 = 16 bit, i32 = 32 bit, i64 = 64 bit, i128 = 128 bit, isize = সিস্টেম ডিপেন্ডেন্ট)

      i8, i16, i32, i64, i128, isize
    • ফ্লোটিং পয়েন্ট টাইপ (f32 = 32 bit, f64 = 64 bit)

      f32, f64
    • বুলিয়ান

      bool
    • টাপল/টুপল

      (i32, f64, u8)

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

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

    স্পন্সর