From 6e99e26a5812708456de683ded4fd51950eb6047 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Seidel?= Date: Tue, 10 Sep 2024 13:39:51 +0200 Subject: [PATCH] replace StringBuilder.png by mermaid --- README.md | 20 ++++++++++++++++++-- docs/StringBuilder.png | Bin 22300 -> 0 bytes 2 files changed, 18 insertions(+), 2 deletions(-) delete mode 100644 docs/StringBuilder.png diff --git a/README.md b/README.md index 4293b6d..ce4e1c1 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,24 @@ USING Simatic.Ax.Strings; UML Diagram -![UML](./docs/StringBuilder.png) - +```mermaid +classDiagram + class StringBuilder + StringBuilder : -_string STRING + interface IConstrainedStringBuilder + IConstrainedStringBuilder : +Reset IConstrainedStringBuilder + IConstrainedStringBuilder : +Append IStringBuilder + IConstrainedStringBuilder : +ToString() STRING + interface IStringBuilder + IStringBuilder : +Insert() IStringBuilder + IStringBuilder : +Remove() IStringBuilder + IStringBuilder : +Substring() IStringBuilder + IStringBuilder : +StartOf() IStringBuilder + IStringBuilder : +EndOf() IStringBuilder + IStringBuilder : +Replace() IStringBuilder + IConstrainedStringBuilder <|-- IStringBuilder + StringBuilder ..|> IStringBuilder +``` ### Interfaces [IStringBuilder](./docs/IStringBuilder.md)
diff --git a/docs/StringBuilder.png b/docs/StringBuilder.png deleted file mode 100644 index 8a88587d839c36d49c2ccf7b62e4069fbe27aa14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22300 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