Skip to main content

group_values

Function group_values 

Source
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);