cli UML
This commit is contained in:
parent
e40f6f48a1
commit
d27e7825de
1 changed files with 61 additions and 0 deletions
61
class.puml
Normal file
61
class.puml
Normal file
|
@ -0,0 +1,61 @@
|
|||
@startuml Class Diagram
|
||||
|
||||
package core {
|
||||
package str {
|
||||
package traits {
|
||||
interface FromStr<type Error> {
|
||||
from_str(s: &str): Result<Self, Self::Error>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
package cli {
|
||||
package docstr {}
|
||||
package schema {
|
||||
+enum Cli {
|
||||
+Play { PlayOpts }
|
||||
+Export { ExportOptions }
|
||||
+List { ListOptions }
|
||||
}
|
||||
+struct PlayOptions {
|
||||
#input: FileContents
|
||||
}
|
||||
+struct ExportOptions {
|
||||
~input: FileContents
|
||||
~output: AudioFileName
|
||||
}
|
||||
+enum ListOptions {
|
||||
+Extensions
|
||||
+struct Math { -kind: Option<MathDocKind> }
|
||||
+Glyphs
|
||||
}
|
||||
+enum MathDocKind {
|
||||
+Functions
|
||||
+Operators
|
||||
+Literals
|
||||
}
|
||||
+struct FileContents {
|
||||
0: String
|
||||
}
|
||||
FileContents --|> FromStr: type Error = io::Error
|
||||
+struct AudioFileName {
|
||||
0: String
|
||||
}
|
||||
+struct UnsupportedFileExtensionError {
|
||||
}
|
||||
AudioFileName -|> FromStr: type Error = UnsupportedFileExtensionError
|
||||
Cli --> PlayOptions
|
||||
Cli --> ExportOptions
|
||||
Cli --> ListOptions
|
||||
PlayOptions --> FileContents
|
||||
ExportOptions -> FileContents
|
||||
ExportOptions -> AudioFileName
|
||||
ListOptions --> MathDocKind
|
||||
AudioFileName --> UnsupportedFileExtensionError
|
||||
}
|
||||
}
|
||||
package lang {}
|
||||
package dasp {}
|
||||
|
||||
@enduml
|
Loading…
Reference in a new issue