use crate::{
Result, Rudof,
api::shacl::ShaclOperations,
formats::{ResultShaclValidationFormat, ShaclValidationSortByMode},
};
use std::io;
pub struct SerializeShaclValidationResultsBuilder<'a, W: io::Write> {
rudof: &'a Rudof,
writer: &'a mut W,
shacl_validation_sort_order_mode: Option<&'a ShaclValidationSortByMode>,
result_shacl_validation_format: Option<&'a ResultShaclValidationFormat>,
}
impl<'a, W: io::Write> SerializeShaclValidationResultsBuilder<'a, W> {
pub(crate) fn new(rudof: &'a Rudof, writer: &'a mut W) -> Self {
Self {
rudof,
writer,
shacl_validation_sort_order_mode: None,
result_shacl_validation_format: None,
}
}
pub fn with_shacl_validation_sort_order_mode(
mut self,
shacl_validation_sort_order_mode: &'a ShaclValidationSortByMode,
) -> Self {
self.shacl_validation_sort_order_mode = Some(shacl_validation_sort_order_mode);
self
}
pub fn with_result_shacl_validation_format(
mut self,
result_shacl_validation_format: &'a ResultShaclValidationFormat,
) -> Self {
self.result_shacl_validation_format = Some(result_shacl_validation_format);
self
}
pub fn execute(self) -> Result<()> {
<Rudof as ShaclOperations>::serialize_shacl_validation_results(
self.rudof,
self.shacl_validation_sort_order_mode,
self.result_shacl_validation_format,
self.writer,
)
}
}