sass-embedded 0.7.1

A Rust library that will communicate with Embedded Dart Sass using the Embedded Sass protocol
Documentation
mod importer_registry;
mod logger_registry;

pub use importer_registry::ImporterRegistry;
pub use logger_registry::LoggerRegistry;

use crate::protocol::{
  inbound_message::{CanonicalizeResponse, FileImportResponse, ImportResponse},
  outbound_message::{
    CanonicalizeRequest, FileImportRequest, ImportRequest, LogEvent,
  },
};

#[derive(Debug, Default)]
pub struct Host {
  importer: ImporterRegistry,
  logger: LoggerRegistry,
}

impl Host {
  pub fn new(importer: ImporterRegistry, logger: LoggerRegistry) -> Self {
    Self { importer, logger }
  }

  pub fn canonicalize(
    &self,
    request: &CanonicalizeRequest,
  ) -> CanonicalizeResponse {
    self.importer.canonicalize(request)
  }

  pub fn import(&self, request: &ImportRequest) -> ImportResponse {
    self.importer.import(request)
  }

  pub fn file_import(&self, request: &FileImportRequest) -> FileImportResponse {
    self.importer.file_import(request)
  }

  pub fn log(&self, event: LogEvent) {
    self.logger.log(event);
  }
}