regent-sdk 0.2.0

Multi-paradigm configuration management system as a library
Documentation
use crate::error::Error;
use crate::task::taskblock::{ParsingTaskBlock, TaskBlock};
use crate::task::tasklist::TaskList;
use serde_json;

pub fn json_tasklist_parser(tasklistcontent: &str) -> Result<TaskList, Error> {
    match serde_json::from_str::<Vec<ParsingTaskBlock>>(tasklistcontent) {
        Ok(parsed_content) => {
            let mut tasks: Vec<TaskBlock> = Vec::new();
            for parsed_task in parsed_content.iter() {
                match parsed_task.parse_task_block() {
                    Ok(task_block) => match task_block.check() {
                        Ok(()) => {
                            tasks.push(task_block);
                        }
                        Err(error) => {
                            return Err(error);
                        }
                    },
                    Err(error) => {
                        return Err(error);
                    }
                }
            }
            return Ok(TaskList::from(tasks));
        }
        Err(e) => return Err(Error::FailureToParseContent(format!("{:?}", e))),
    }
}