pub fn group_values(values: Vec<RecordValue>) -> Vec<RecordSet>Expand description
Groups a flat list of values (as from Records::list_all)
into RRsets by (zone, name, type). Groups keep the order in which they first appear,
values the order they had; a group’s TTL is taken from its first value (Core keeps them
equal). Sends nothing.
§Examples
use dinio_sdk::models::RecordValue;
use dinio_sdk::ops::group_values;
let value = |name: &str, data: &str| -> RecordValue {
serde_json::from_value(serde_json::json!({
"uuid": dinio_sdk::Uuid::nil(), "zone_id": dinio_sdk::Uuid::nil(),
"name": name, "type": "A", "ttl": 300, "data": data,
"created_at": 0, "updated_at": 0
}))
.unwrap()
};
let groups = group_values(vec![
value("www.example.com", "192.0.2.1"),
value("api.example.com", "192.0.2.9"),
value("www.example.com", "192.0.2.2"),
]);
assert_eq!(groups.len(), 2);
assert_eq!(groups[0].name, "www.example.com");
assert_eq!(groups[0].values.len(), 2);
assert_eq!(groups[0].ttl, 300);