use std::fmt;fnmain(){letmut dijith = Dev::default().with_skill(Skill::Language("Rust")).with_skill(Skill::Framework("Axum")).with_skill(Skill::Language("TypeScript")).with_skill(Skill::Language("Lua")).with_skill(Skill::Framework("Next.js")).with_skill(Skill::Framework("Angular")).with_skill(Skill::Paradigm("Functional")).with_interest_in(&["system design","operating systems","networking"]);
dijith.about = "Computer engineering student interested in system design".to_string();
dijith.push_project("rusty-vim","Modal text editor built from scratch.");
dijith.push_project("markweavia","Markdown Slides creator");
dijith.push_project("project-mosaic","Collaborative pixel canvas with a Rust/Axum backend.",);
dijith.render();}structDev{handle:&'staticstr,about:String,skills:Vec<Skill>,projects:Vec<(&'staticstr,&'staticstr)>,interests:Vec<&'staticstr>,matrix_id:&'staticstr,}implDefaultforDev{fndefault() -> Self{Self{handle:"dijith-481",about:String::new(),skills:Vec::from([Skill::Tool("Neovim"),Skill::Tool("Arch Btw")]),projects:Vec::new(),interests:Vec::new(),matrix_id:"@dijith:matrix.org",}}}implDev{fnpush_project(&mutself,name:&'staticstr,description:&'staticstr){self.projects.push((name, description));}fnwith_skill(mutself,skill:Skill) -> Self{self.skills.push(skill);self}fnwith_interest_in(mutself,interests:&'static[&'staticstr]) -> Self{self.interests.extend(interests);self}fnrender(&self){println!("\n\n[DEV] {} :: {}",self.handle,self.about);println!("\n[CORE] {}",self.skills
.iter().map(ToString::to_string).collect::<Vec<_>>().join(" | "));println!("\ninterested_in:: {}",self.interests.join(", "));println!("\n[ARTIFACTS]");self.projects.iter().for_each(|&(name, desc)| {println!("- {}: {}", name, desc);println!(" └─ https://github.com/{}/{}",self.handle, name);});println!("\n[MATRIX] - matrix:: {}",self.matrix_id);}}#[derive(Debug)]enumSkill{Language(&'staticstr),Framework(&'staticstr),Tool(&'staticstr),Paradigm(&'staticstr),}impl fmt::DisplayforSkill{fnfmt(&self,f:&mut fmt::Formatter<'_>) -> fmt::Result{matchself{Self::Language(s) => write!(f,"lang::{}", s),Self::Framework(s) => write!(f,"framework::{}", s),Self::Tool(s) => write!(f,"tool::{}", s),Self::Paradigm(s) => write!(f,"paradigm::{}", s),}}}rustc dijith-481.rs
./dijith-481[DEV] dijith-481 :: Computer engineering student interested in system design
[CORE] tool::Neovim | tool::Arch Btw | lang::Rust | framework::Axum | lang::TypeScript | lang::Lua | framework::Next.js | framework::Angular | paradigm::Functional
interested_in:: system design, operating systems, networking
[ARTIFACTS]
- rusty-vim: Modal text editor built from scratch.
└─ https://github.com/dijith-481/rusty-vim
- markweavia: Markdown Slides creator
└─ https://github.com/dijith-481/markweavia
- project-mosaic: Collaborative pixel canvas with a Rust/Axum backend.
└─ https://github.com/dijith-481/project-mosaic
[MATRIX] - matrix:: @dijith:matrix.org



