ডেভসংকেত

রাস্ট

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

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

  • morshedulmunna
  • jonaed1230
  • iamraufu
  • 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() {}
    }

Function

  • Main Function

    fn main() {
    	println!("Hello, world!");
    }
  • Create Custom Function

    fn function_name() {
    	//code area
    
  • Function call with Parameters Passing

    fn main() {
    	another_function(5);
    }
    
    fn another_function(x: i32) {
    	println!("The value of x is: {x}");
    

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)

Comments/কমেন্ট করা

  • Single Line কিভাবে কমেন্ট করবেন

    // comment here anything
  • Multi Line কিভাবে কমেন্ট করবেন

    /* comment here anything 
     The next one isn't allowed because outer doc comments 
    require an item that will receive the doc*/

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

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

স্পন্সর