diff options
author | NeonXP <i@neonxp.dev> | 2023-01-04 23:51:40 +0300 |
---|---|---|
committer | NeonXP <i@neonxp.dev> | 2023-01-04 23:51:40 +0300 |
commit | 1872e018d1de12793e794fb45d9bbcea569706fe (patch) | |
tree | 98229c5398ef42d696d82ee42a14aea2e4c7c3dd /README.md | |
parent | 67d30e9444c7bdae62906477cafb5f992c5b70e1 (diff) |
Added fill to factoryv0.1.2
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 29 |
1 files changed, 11 insertions, 18 deletions
@@ -63,21 +63,24 @@ std.ObjectNode{ ## Своя фабрика ``` -// Непосредственно фабрика возвращающая заготовки нужного типа -type NodeFactory func(typ NodeType) (Node, error) +type Factory interface { + // Непосредственно фабрика возвращающая заготовки нужного типа + Produce(typ NodeType) (Node, error) + // Заполнение заготовки определенного типа соответствующим ей значением + Fill(n Node, value any) +} type Node interface { - String() string + // Возвращает json представление узла + ToJSON() string } -// Имплементация узла объекта type ObjectNode interface { Node - SetKetValue(k string, v Node) - GetByKey(k string) (Node, bool) + Set(k string, v Node) + Get(k string) (Node, bool) } -// Имлементация узла массива type ArrayNode interface { Node Append(v Node) @@ -85,29 +88,18 @@ type ArrayNode interface { Len() int } -// Имплементация узла строки type StringNode interface { Node - SetString(v string) - GetString() string } - -// Имплементация узла числа type NumberNode interface { Node - SetNumber(v float64) - GetNumber() float64 } -// Имплементация узла булевого типа type BooleanNode interface { Node - SetBool(v bool) - GetBool() bool } -// Имплементация null type NullNode interface { Node } @@ -118,3 +110,4 @@ type AcceptParent interface { } ``` +[Пример реализации самой простой фабрики и типов](/std/factory.go)
\ No newline at end of file |