Skip to content
View dijith-481's full-sized avatar
🐢
...
🐢
...

Block or report dijith-481

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
dijith-481/README.md
use std::fmt;

fn main() {
    let mut 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();
}

struct Dev {
    handle: &'static str,
    about: String,
    skills: Vec<Skill>,
    projects: Vec<(&'static str, &'static str)>,
    interests: Vec<&'static str>,
    matrix_id: &'static str,
}

impl Default for Dev {
    fn default() -> 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",
        }
    }
}

impl Dev {
    fn push_project(&mut self, name: &'static str, description: &'static str) {
        self.projects.push((name, description));
    }

    fn with_skill(mut self, skill: Skill) -> Self {
        self.skills.push(skill);
        self
    }

    fn with_interest_in(mut self, interests: &'static [&'static str]) -> Self {
        self.interests.extend(interests);
        self
    }

    fn render(&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)]
enum Skill {
    Language(&'static str),
    Framework(&'static str),
    Tool(&'static str),
    Paradigm(&'static str),
}

impl fmt::Display for Skill {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        match self {
            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

Pinned Loading

  1. Markweavia Markweavia Public

    A no-nonsense tool that transforms your Markdown into elegant, professional, platform-independent HTML presentations, all with familiar Vim motions.

    TypeScript 109 11

  2. rusty-vim rusty-vim Public

    A modal, Vim-like text editor built from scratch in ~1500 lines of Rust.

    Rust 21 1

  3. dot-linker dot-linker Public

    It link your dots

    Rust

  4. shasthra25 shasthra25 Public

    An expressive overengineered tech-fest webpage designed for web-team selection task as part of excel'25 with a cute little event card

    TypeScript

  5. platform-game platform-game Public

    A 2D platformer game built using Typescript for browser

    TypeScript

  6. games3d games3d Public

    A 3D rubiks Cube in TypeScript and Three.js

    TypeScript