কেন এই রাস্ট ফর্ম্যাটার ব্যবহার করবেন
- ইডিওম্যাটিক রাস্ট কোডের জন্য রাস্টফর্ম্যাট-স্টাইল ফর্ম্যাটিং
- সামঞ্জস্যযোগ্য ইন্ডেন্ট সাইজ এবং সর্বোচ্চ লাইন প্রস্থ (র্যাপ কলাম)
- আইডেম্পোটেন্ট ফর্ম্যাটিং – একই ফাইল পুনরায় ফর্ম্যাট করলে একই ফলাফল পাওয়া যায়
- শুধু লেআউট পরিবর্তন: ইন্ডেন্টেশন, স্পেসিং এবং লাইন ব্রেক, লজিক নয়
- স্ট্যান্ডালোন `.rs` ফাইল এবং ক্রেট মডিউলের সাথে দুর্দান্ত কাজ করে
- একটি সুরক্ষিত ফর্ম্যাটিং ব্যাকএন্ডের মাধ্যমে কোড প্রসেস করা হয় – কোনো পাবলিক শেয়ারিং বা ইনডেক্সিং নেই
- প্রতিক্রিয়াশীল ইন্টারফেস যা ডার্ক/লাইট এডিটর থিমের সাথে ভালভাবে কাজ করে
🛠️ অনলাইনে রাস্ট কোড ফরম্যাট করার উপায় for rust-formatter
১. আপনার রাস্ট কোড পেস্ট বা আপলোড করুন
📥 আপনার রাস্ট কোড এডিটরে পেস্ট করুন অথবা আপনার প্রোজেক্ট থেকে একটি `.rs` ফাইল ড্র্যাগ-এন্ড-ড্রপ করুন। টুলটি রাস্ট সিনট্যাক্স শনাক্ত করে এবং সহজ পরিদর্শনের জন্য হাইলাইট করে।
২. ইন্ডেন্ট ও লাইন দৈর্ঘ্য সামঞ্জস্য করুন
📏 অপশন প্যানেল ব্যবহার করে আপনার **ইন্ডেন্ট সাইজ** (যেমন ২ বা ৪ স্পেস) এবং **র্যাপ লাইন দৈর্ঘ্য** (দীর্ঘ চেইন বা জটিল এক্সপ্রেশনের জন্য) নির্বাচন করুন। বিদ্যমান লাইন প্রস্থ রাখতে চাইলে র্যাপিং `0` এ সেট করুন।
৩. "ফরম্যাট" ক্লিক করুন
🚀 **ফরম্যাট** বাটনে ক্লিক করুন। আপনার কোড একটি rustfmt-স্টাইল ফরম্যাটারে পাঠানো হয়, যা বিহেভিয়ার পরিবর্তন না করে ইন্ডেন্টেশন, স্পেস, ব্ল্যাংক লাইন এবং র্যাপিং নরমালাইজ করে।
৪. রিভিউ, কপি বা ডাউনলোড করুন
📤 ফরম্যাট করার আগে/পরের তুলনা করুন, তারপর ফরম্যাটেড কোড আপনার এডিটরে কপি করুন অথবা ফলাফলটি `.rs` ফাইল হিসেবে ডাউনলোড করুন। `cargo build`, `cargo test` এবং কোড রিভিউর জন্য প্রস্তুত।
প্রযুক্তিগত বিবরণ
ফরম্যাটিং ইঞ্জিন ও স্টাইল
ফরম্যাটারটি rustfmt-স্টাইল, মতামতভিত্তিক ফরম্যাটিং অনুসরণ করে, তাই আপনার কোড ফাইল এবং কন্ট্রিবিউটর জুড়ে আদর্শ রাস্টের মতো দেখায়।
| দিক | আচরণ | নোট |
|---|---|---|
| ইন্ডেন্টেশন | কনফিগারযোগ্য, সাধারণত প্রতি লেভেলে ২–৪ স্পেস | অনেক প্রোজেক্টে সাধারণ রাস্ট স্টাইলের সাথে মেলাতে ট্যাবগুলি স্পেসে নরমালাইজ করা হয়। |
| ব্রেস ও ব্লক | `fn`, `impl`, `match`, `if`, `loop`... এর জন্য সামঞ্জস্যপূর্ণ প্লেসমেন্ট এবং ইন্ডেন্টেশন | নেস্টেড কন্ট্রোল-ফ্লো এবং ম্যাচ এক্সপ্রেশন পড়তে সহায়তা করে। |
| স্পেসিং | অপারেটর এবং যতিচিহ্নের চারপাশের অতিরিক্ত স্পেস পরিষ্কার করে | `let`, `match`, ক্লোজার এবং জেনেরিক স্পেসিং স্ট্যান্ডার্ডাইজ করে। |
| খালি লাইন | আইটেমের মধ্যে নরমালাইজ করা (ফাংশন, স্ট্রাক্ট, ইমপ্ল ব্লক) | মডিউল এবং API সারফেসের ভিজুয়াল বিভাজন উন্নত করে। |
| ইডেমপোটেন্সি | একই ইনপুট → একই আউটপুট যখন ইতিমধ্যে ফরম্যাট করা থাকে | ফর্ম্যাটার পুনরায় চালানো সর্বদা নিরাপদ এবং স্থিতিশীল। |
ইন্ডেন্ট সাইজ ও লাইন র্যাপিং
আপনি আপনার দলের রীতিনীতির সাথে মেলে ইন্ডেন্টেশনের প্রস্থ এবং র্যাপিং কাস্টমাইজ করতে পারেন।
| সেটিং | মানের পরিসর | প্রভাব |
|---|---|---|
| indentSize | ১–৮ স্পেস | প্রতিটি নেস্টেড ব্লক কতটা ইন্ডেন্টেশন যোগ করে তা নিয়ন্ত্রণ করে। |
| wrapLineLength = 0 | লাইন-দৈর্ঘ্য-ভিত্তিক র্যাপিং নেই | আপনার বিদ্যমান লাইন প্রস্থ বজায় রাখে (দ্রুত সংশোধনের জন্য কার্যকর)। |
| wrapLineLength = ৮০–১০০ | সাধারণ রাস্ট দলের পছন্দ | অত্যন্ত পাঠযোগ্য থাকার সময় কোড কমপ্যাক্ট রাখে। |
| wrapLineLength = ১০১–১২০ | আরও নমনীয় লেআউট | অতিবিস্তৃত মনিটর বা অনুসন্ধানমূলক কোডের জন্য ভাল। |
সমর্থিত ইনপুট ও সীমাবদ্ধতা
দৈনন্দিন রাস্ট ডেভেলপমেন্ট ওয়ার্কফ্লোর জন্য তৈরি।
| প্যারামিটার | সীমা / আচরণ | মন্তব্য |
|---|---|---|
| ফাইল এক্সটেনশন | .rs | ক্রেট, বাইনারি, মডিউল এবং উদাহরণের সোর্স ফাইল। |
| MIME টাইপ | text/x-rustsrc | সিনট্যাক্স হাইলাইটিং এবং এডিটর মোডের জন্য অভ্যন্তরীণভাবে ব্যবহৃত। |
| সর্বোচ্চ ইনপুট আকার | ≈ ২ MB রাস্ট সোর্স | অত্যন্ত বড় বা জেনারেটেড ফাইলগুলি আপনার মেশিনে `cargo fmt` এর মাধ্যমে ভালভাবে পরিচালনা করা উচিত। |
| এনকোডিং | UTF-8 সুপারিশকৃত | নন-UTF-8 ইনপুট ফর্ম্যাট করার আগে রূপান্তর করা উচিত। |
এক্সিকিউশন ও নিরাপত্তা
ফর্ম্যাটিং একটি সুরক্ষিত ব্যাকএন্ডে রাস্ট-সচেতন ফর্ম্যাটার ব্যবহার করে কার্যকর করা হয়।
| দিক | আচরণ | মন্তব্য |
|---|---|---|
| পরিবহন | ফর্ম্যাটিং API-তে HTTPS অনুরোধ | আপনার কোড নিরাপদে প্রেরণ করা হয় এবং প্রকাশ্যে উন্মুক্ত নয়। |
| টাইমআউট | প্রতি অনুরোধে ~২৫ সেকেন্ড | চরম বা ত্রুটিপূর্ণ ইনপুটগুলিতে কাজের অস্বাভাবিক বৃদ্ধি রোধ করে। |
| অর্থবিজ্ঞান | শুধুমাত্র লেআউট রূপান্তর | আপনার লজিক একই থাকে; শুধুমাত্র হোয়াইটস্পেস এবং লেআউট পরিবর্তন করা হয়। |
rustfmt & cargo fmt CLI উদাহরণ
আপনার সম্পাদক, CI বা টার্মিনালে সরাসরি একই স্টাইল চান? স্থানীয়ভাবে `rustfmt` বা `cargo fmt` ব্যবহার করুন:
ক্রস-প্ল্যাটফর্ম (Rust টুলচেইনের মাধ্যমে)
সম্পূর্ণ ক্রেট ফর্ম্যাট করুন
cargo fmtআপনার ক্রেটের সমস্ত `.rs` ফাইল `rustfmt.toml` অনুযায়ী rustfmt চালায়।
একটি একক ফাইল ফর্ম্যাট করুন
rustfmt src/main.rsএকটি ফাইলে rustfmt নিয়ম প্রয়োগ করে।
একটি কাস্টম সর্বোচ্চ প্রস্থ ব্যবহার করুন
rustfmt --config max_width=100 src/lib.rsডিফল্ট র্যাপিং কলাম ওভাররাইড করে (এই টুলের র্যাপ লাইন দৈর্ঘ্যের অনুরূপ)।
রাস্ট ফর্ম্যাটারের সাধারণ ব্যবহারের ক্ষেত্র
ক্রেট ও লাইব্রেরি ডেভেলপমেন্ট
আপনার পাবলিক ক্রেট, অভ্যন্তরীণ লাইব্রেরি এবং মাইক্রোসার্ভিস পরিষ্কার ও সামঞ্জস্যপূর্ণ রাখুন।
- crates.io-তে প্রকাশ করার আগে ফর্ম্যাটিং স্বাভাবিক করুন।
- একাধিক ডেভেলপারের অবদান দৃশ্যত সামঞ্জস্যপূর্ণ করুন।
- বড় রিফ্যাক্টর চালান এবং তারপর লেআউট পরিষ্কার করতে স্বয়ংক্রিয়ভাবে ফর্ম্যাট করুন।
pub fn add(a: i32,b:i32)->i32{a+b}
pub fn add(a: i32, b: i32) -> i32 {
a + b
}
CLI টুলস ও অটোমেশন
সংক্ষিপ্ত, রক্ষণাবেক্ষণযোগ্য CLI টুলস, স্ক্রিপ্ট এবং ডেভ ইউটিলিটি ফর্ম্যাট করুন।
- আর্গুমেন্ট পার্সিং এবং ত্রুটি হ্যান্ডলিং ব্লক পড়া যায় এমন রাখুন।
- দীর্ঘ `match` চেইন এবং অপশন হ্যান্ডলিং পরিষ্কার করুন।
- নিশ্চিত করুন যে অভ্যন্তরীণ টুলিং সময়ের সাথে সাথে প্রসারিত করা সহজ থাকে।
রাস্ট শেখা ও শেখানো
স্টাইল নিয়ে বিতর্ক ছাড়াই শিক্ষার্থীদের আদর্শ রাস্ট দেখান।
- স্লাইড বা টিউটোরিয়ালে শেয়ার করার আগে উদাহরণ ফরম্যাট করুন।
- সেরা অনুশীলন শেখানোর জন্য অগোছালো বনাম ফরম্যাট করা Rust তুলনা করুন।
- লজিক পর্যালোচনা করার আগে ছাত্রদের জমা স্বয়ংক্রিয়ভাবে ফরম্যাট করুন।
fn fibonacci(n:u32)->u32{if n<2{n}else{fibonacci(n-1)+fibonacci(n-2)}}
fn fibonacci(n: u32) -> u32 {
if n < 2 {
n
} else {
fibonacci(n - 1) + fibonacci(n - 2)
}
}
❓ Frequently Asked Questions
❓এই Rust ফরম্যাটার কি আমার কোডের আচরণ পরিবর্তন করবে?
📏আমি কীভাবে র্যাপ লাইন দৈর্ঘ্য নির্বাচন করব?
🧹ফরম্যাটার কি ট্রেইলিং হোয়াইটস্পেস সরিয়ে দেয়?
🔒এখানে প্রোডাকশন Rust কোড ফরম্যাট করা কি নিরাপদ?
⚙️এটি rustfmt এবং cargo fmt এর সাথে কীভাবে সম্পর্কিত?
Pro Tips
আপনার ক্রেটের রুটে একটি `rustfmt.toml` যোগ করুন যাতে স্থানীয় `cargo fmt` এবং এই অনলাইন ফরম্যাটার প্রস্থ এবং ইন্ডেন্টেশনে সামঞ্জস্যপূর্ণ থাকে।
এই টুলটিকে একটি CI জবের সাথে একত্রিত করুন যা `cargo fmt -- --check` চালায় যাতে আনফরম্যাটেড কোড আপনার মেইন ব্রাঞ্চে ল্যান্ডিং থেকে প্রতিরোধ করা যায়।
বড় রিফ্যাক্টরের আগে একটি নির্দিষ্ট ফরম্যাটিং কমিট (বা PR) চালান যাতে ভবিষ্যতের ডিফগুলি বাস্তব লজিক পরিবর্তনের উপর ফোকাস করে।
শিক্ষাদান এবং ডকুমেন্টেশনের জন্য ছোট লাইন দৈর্ঘ্য (৮০–৯০) ব্যবহার করুন; অভ্যন্তরীণ টুলে কিছুটা প্রশস্ত করুন যদি আপনার দল এটি পছন্দ করে।
Additional Resources
Other Tools
- সিএসএস সৌন্দর্যবর্ধক
- এইচটিএমএল সৌন্দর্যবর্ধক
- জাভাস্ক্রিপ্ট সৌন্দর্যবর্ধক
- পিএইচপি সৌন্দর্যবর্ধক
- রং নির্বাচক
- স্প্রাইট এক্সট্র্যাক্টর
- বেস৬৪ ডিকোডার
- বেস৬৪ এনকোডার
- সি-শার্প ফরম্যাটার
- সিএসভি ফরম্যাটার
- Dockerfile Formatter
- এলম ফরম্যাটার
- ইএনভি ফরম্যাটার
- গো ফরম্যাটার
- গ্রাফকিউএল ফরম্যাটার
- এইচসিএল ফরম্যাটার
- আইএনআই ফরম্যাটার
- জেসন ফরম্যাটার
- ল্যাটেক ফরম্যাটার
- মার্কডাউন ফরম্যাটার
- অবজেক্টিভসি ফরম্যাটার
- Php Formatter
- প্রোটো ফরম্যাটার
- পাইথন ফরম্যাটার
- রুবি ফরম্যাটার
- স্কালা ফরম্যাটার
- শেল স্ক্রিপ্ট ফরম্যাটার
- এসকিউএল ফরম্যাটার
- SVG ফরম্যাটার
- Swift ফরম্যাটার
- TOML ফরম্যাটার
- Typescript Formatter
- XML ফরম্যাটার
- YAML ফরম্যাটার
- Yarn ফরম্যাটার
- সিএসএস মিনিফায়ার
- Html Minifier
- Javascript Minifier
- জেসন মিনিফায়ার
- XML মিনিফায়ার
- এইচটিটিপি হেডার ভিউয়ার
- পিডিএফ থেকে টেক্সট
- রেজেক্স টেস্টার
- সার্প র্যাংক চেকার
- Whois লুকআপ