bobo

Crates.iobobo
lib.rsbobo
version0.1.4
sourcesrc
created_at2024-09-21 13:15:34.556103
updated_at2024-11-21 03:26:45.730441
descriptionan elegant utils library with oop support
homepagehttps://github.com/moluopro/bobo
repositoryhttps://github.com/moluopro/bobo
max_upload_size
id1382210
size15,353
Mo Luo (moluopro)

documentation

https://github.com/moluopro/bobo

README

BOBO

an elegant and powerful rust development tool library

In development, not recommended. The features listed in the documentation are implemented.

Quick Start

Install: cargo add bobo

use bobo::oop::*;

class! {
    Person {
        name: String
        age: u32

        fn greet() {
            println!("{}", format!("Hello, my name is {}.", self.name));
        }
    }
}

fn main() {
    let person = Person {
        name: String::from("Tom"),
    };

    person.greet();
}

A more complex example

Create multiple classes with multiple properties and methods.

use bobo::oop::*;

class! {

    Person {

        name: String
        age: u32

        fn greet() {
            println!("{}", format!("Hello, my name is {}.", self.name));
        }

        fn get_age(years: u32) -> u32 {
            self.age + years
        }
    }

    Animal {

        species: String
        age: u32

        fn speak() {
            println!("The {} makes a sound.", self.species);
        }

        fn age_in_human_years() -> u32 {
            self.age * 7
        }
    }

}

Create a class using a constructor named new:

use bobo::oop::*;

fn main() {
    let person = Person::new("Alice", 30);
    person.greet();
}

class! {
    Person {
        name: String
        age: u32

        fn new(name: &str, age: u32) -> Self {
            Self {
                name: name.to_string(),
                age
            }
        }

        fn greet() {
            println!("{}", format!("I'm {}.", self.name));
        }
    }
}
Commit count: 8

cargo fmt