roopes-core 0.1.1

Roopes is a Rust Object Oriented Pattern Element System. This crate provides generic traits and implementations for typical object-oriented patterns in Rust. It is intended to be used as a cluster of utility classes for implementing OOP-architected executables -- in Rust!
Documentation
@startuml "observer"
interface "Observer" as obs {
    {method} + notify()
}

interface "AttachableSubject" as attach {
    {method} + attach(listener: Observer)
}

interface "DetachableSubject" as detach {
    {method} + detach(listener: Observer)
}

interface "Subject" as sub {
    {method} + notify()
}

interface "MutableSubject" as mutsub {
}
mutsub --|> attach
mutsub --|> detach
mutsub --|> sub

struct "VectorSubject" as vecsub {
    {field} - listeners: Vec<Observer>
}
vecsub .u.|> mutsub
vecsub --> obs

struct "HashSubject" as hshsub {
    {field} - listeners: HashSet<Observer + Hash>
}
hshsub ..|> mutsub
hshsub --> obs

@enduml