git » sdk » commit f9449a5

forgot this

author Stephen Paul Weber
2025-11-07 18:09:57 UTC
committer Stephen Paul Weber
2025-11-07 18:09:57 UTC
parent 19edc78d5de2c8417953036ada42218922b0030b

forgot this

borogove/DataForm.hx +31 -0

diff --git a/borogove/DataForm.hx b/borogove/DataForm.hx
new file mode 100644
index 0000000..ffad925
--- /dev/null
+++ b/borogove/DataForm.hx
@@ -0,0 +1,31 @@
+package borogove;
+
+import borogove.Stanza;
+
+@:forward(toString)
+abstract DataForm(Stanza) from Stanza to Stanza {
+	inline public function fields(): Array<Field> {
+		return this.allTags("field");
+	}
+
+	public function field(name: String): Null<Field> {
+		final matches = fields().filter(f -> f.name == name);
+		if (matches.length > 1) {
+			trace('Multiple fields matching ${name}');
+		}
+		return matches[0];
+	}
+}
+
+abstract Field(Stanza) from Stanza to Stanza {
+	public var name(get, never): String;
+	public var value(get, never): Array<String>;
+
+	inline public function get_name() {
+		return this.attr.get("var");
+	}
+
+	public function get_value() {
+		return this.allTags("value").map(v -> v.getText());
+	}
+}