prism_wasmbind/options/
mod.rs1use crate::{prism_render};
2use std::fmt::{Display, Formatter};
3
4#[derive(Debug, Copy, Clone)]
6pub enum PrismLanguage {
7 HTML,
9 JavaScript,
11 Rust,
13 Css,
15}
16
17impl Display for PrismLanguage {
18 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
19 match self {
20 PrismLanguage::HTML => write!(f, "markup"),
21 PrismLanguage::JavaScript => write!(f, "javascript"),
22 PrismLanguage::Rust => write!(f, "rust"),
23 PrismLanguage::Css => write!(f, "css"),
24 }
25 }
26}
27
28#[derive(Debug, Clone)]
30pub struct PrismOptions {
31 pub language: PrismLanguage,
33
34}
35
36impl Default for PrismOptions {
37 fn default() -> Self {
38 Self {
39 language: PrismLanguage::Rust,
40 }
41 }
42}
43
44impl PrismOptions {
45 pub fn css() -> PrismOptions {
47 PrismOptions { language: PrismLanguage::Css, ..PrismOptions::default() }
48 }
49 pub fn rust() -> PrismOptions {
51 PrismOptions { language: PrismLanguage::Rust, ..PrismOptions::default() }
52 }
53 pub fn render(&self, input: &str) -> String {
55 prism_render(input, &self.language.to_string())
56 }
57}
58
59impl PrismOptions {}