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 "publisher_subscriber"
interface "Subscriber" as sub<M> {
    {method} + receive(M)
}

interface "AttachablePublisher" as attach {
    {method} + attach(listener: Subscriber)
}
attach -u-> sub

interface "DetachablePublisher" as detach {
    {method} + detach(listener: Subscriber)
}
detach -u-> sub


interface "Publisher" as pub<M> {
    {method} + publish(M)
}

interface "MutablePublisher" as mutpub {
}
mutpub -u-|> attach
mutpub -u-|> detach
mutpub -u-|> pub

struct "Vector" as vecpub {
    {field} - listeners: Vec<Subscriber>
}
vecpub .u.|> mutpub
vecpub -u-> sub

struct "Hash" as hshpub {
    {field} - listeners: HashSet<Subscriber + Hash>
}
hshpub .u.|> mutpub
hshpub -u-> sub

@enduml