@@ -19,30 +19,6 @@ This library can be compiled for WASM targets.
1919Usage
2020-----
2121
22- Create some RDAP objects:
23-
24- ``` rust
25- // create an entity
26- use icann_rdap_common :: response :: Entity ;
27- let holder = Entity :: builder (). handle (" foo-BAR" ). build ();
28-
29- // create an RDAP domain
30- use icann_rdap_common :: response :: Domain ;
31- let domain = Domain :: builder (). ldh_name (" example.com" ). entity (holder . clone ()). build ();
32-
33- // create an IP network
34- use icann_rdap_common :: response :: Network ;
35- let net = Network :: builder (). cidr (" 10.0.0.0/16" ). entity (holder . clone ()). build (). unwrap ();
36-
37- // create a nameserver
38- use icann_rdap_common :: response :: Nameserver ;
39- let ns = Nameserver :: builder (). ldh_name (" ns1.example.com" ). entity (holder . clone ()). build (). unwrap ();
40-
41- // create an autnum
42- use icann_rdap_common :: response :: Autnum ;
43- let autnum = Autnum :: builder (). autnum_range (700 .. 700 ). entity (holder ). build ();
44- ```
45-
4622Parse RDAP JSON:
4723
4824``` rust
@@ -79,6 +55,56 @@ let rdap: RdapResponse = serde_json::from_str(json).unwrap();
7955assert! (matches! (rdap , RdapResponse :: Network (_ )));
8056```
8157
58+ Create some RDAP objects:
59+
60+ ``` rust
61+ use icann_rdap_common :: prelude :: * ;
62+
63+ // create a simple entity to be used inside other objects with builder().
64+ let holder = Entity :: builder (). handle (" foo-BAR" ). build ();
65+
66+ // create an RDAP domain response object with response_obj()
67+ let domain = Domain :: response_obj ()
68+ . ldh_name (" example.com" )
69+ . extension (ExtensionId :: IcannRdapResponseProfile1 . as_ref ())
70+ . extension (ExtensionId :: IcannRdapTechnicalImplementationGuide1 . as_ref ())
71+ . notice (Notice :: builder ()
72+ . title (" Inaccuracy resport" )
73+ . description_entry (" Things may be wrong. But it isn't our fault." )
74+ . description_entry (" Read the policy for more information." )
75+ . build ()
76+ )
77+ . entity (holder . clone ())
78+ . build ();
79+
80+ // create an IP network to be used as a response with response_obj()
81+ let net = Network :: response_obj ()
82+ . cidr (" 10.0.0.0/16" )
83+ . entity (holder . clone ())
84+ . extension (ExtensionId :: NroRdapProfile0 . as_ref ())
85+ . notice (Notice :: builder (). title (" test" ). build ())
86+ . build ()
87+ . unwrap ();
88+
89+ // create a nameserver for a response
90+ let ns = Nameserver :: response_obj ()
91+ . ldh_name (" ns1.example.com" )
92+ . entity (holder . clone ())
93+ . extension (ExtensionId :: IcannRdapResponseProfile1 . as_ref ())
94+ . extension (ExtensionId :: IcannRdapTechnicalImplementationGuide1 . as_ref ())
95+ . notice (Notice :: builder (). title (" Inaccuracy resport" ). build ())
96+ . build ()
97+ . unwrap ();
98+
99+ // create an autnum for a response
100+ let autnum = Autnum :: response_obj ()
101+ . autnum_range (700 .. 700 )
102+ . entity (holder )
103+ . extension (ExtensionId :: NroRdapProfile0 . as_ref ())
104+ . notice (Notice :: builder (). title (" test" ). build ())
105+ . build ();
106+ ```
107+
82108RDAP uses jCard, the JSON version of vCard, to model "contact information"
83109(e.g. postal addresses, phone numbers, etc...). Because jCard is difficult
84110to use and there might be other contact models standardized by the IETF,
0 commit comments