refactor to work as a lib

This commit is contained in:
2025-12-28 11:48:07 +00:00
parent 9376127980
commit 6bc01b63ca
9 changed files with 82 additions and 47 deletions

View File

@@ -1,25 +1,27 @@
use std::{error::Error, fs::read_to_string, io};
use toml::{Table, Value};
use toml::Table;
#[derive(Clone)]
pub struct ZoneConnectionData {
pub conection_str: String,
pub key_name: String,
pub key: String,
}
#[derive(Clone)]
pub struct ServerZonesConnection {
pub root_domain: String,
pub servers_data: Vec<ZoneConnectionData>,
}
impl ZoneConnectionData {
pub fn get_config(file_name: &String) -> Result<Vec<Self>, Box<dyn Error>> {
pub fn get_config(file_name: &str) -> Result<Vec<Self>, Box<dyn Error>> {
let mut ret = Vec::new();
let key_toml = read_to_string(file_name)?.parse::<Table>()?;
for servers in key_toml["server"]
for servers in key_toml["dns_server"]
.as_array()
.ok_or(generate_toml_parser_error_in_field("server"))?
.ok_or(generate_toml_parser_error_in_field("dns_server"))?
{
let conection_str: String = servers["connection_str"]
.as_str()
@@ -44,12 +46,12 @@ impl ZoneConnectionData {
}
impl ServerZonesConnection {
pub fn get_config(file_name: &String) -> Result<Self, Box<dyn Error>> {
let root_domain: String =
read_to_string(file_name)?.parse::<Table>()?["zone"]["root_domain"]
.as_str()
.ok_or(generate_toml_parser_error_in_field("zone root_domain"))?
.to_string();
pub fn get_config(file_name: &str) -> Result<Self, Box<dyn Error>> {
let root_domain: String = read_to_string(file_name)?.parse::<Table>()?["zone"]
["root_domain"]
.as_str()
.ok_or(generate_toml_parser_error_in_field("zone root_domain"))?
.to_string();
Ok(Self {
root_domain,