summary refs log tree commit diff
path: root/src/lib/net.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/net.rs')
-rw-r--r--src/lib/net.rs38
1 files changed, 37 insertions, 1 deletions
diff --git a/src/lib/net.rs b/src/lib/net.rs
index c7c042a54a9..5ee7cfa602c 100644
--- a/src/lib/net.rs
+++ b/src/lib/net.rs
@@ -1,8 +1,33 @@
+/*
+Module: net
+*/
+
 import vec;
 import uint;
 
-tag ip_addr { ipv4(u8, u8, u8, u8); }
+/* Section: Types */
+
+/*
+Tag: ip_addr
+
+An IP address
+*/
+tag ip_addr {
+    /*
+    Variant: ipv4
+
+    An IPv4 address
+    */
+    ipv4(u8, u8, u8, u8);
+}
+
+/* Section: Operations */
 
+/*
+Function: format_addr
+
+Convert an <ip_addr> to a str
+*/
 fn format_addr(ip: ip_addr) -> str {
     alt ip {
       ipv4(a, b, c, d) {
@@ -12,6 +37,17 @@ fn format_addr(ip: ip_addr) -> str {
     }
 }
 
+/*
+Function: parse_addr
+
+Convert a str to <ip_addr>
+
+Converts a string of the format "x.x.x.x" into an ip_addr tag.
+
+Failure:
+
+String must be a valid IPv4 address
+*/
 fn parse_addr(ip: str) -> ip_addr {
     let parts = vec::map({|s| uint::from_str(s) }, str::split(ip, "."[0]));
     if vec::len(parts) != 4u { fail "Too many dots in IP address"; }