Skip to content

Commit cfff29a

Browse files
committed
Add hypertext and vy
1 parent eb9467a commit cfff29a

File tree

8 files changed

+166
-1
lines changed

8 files changed

+166
-1
lines changed

Cargo.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,22 @@ license = "Apache-2.0"
2424
[features]
2525
default = ["compiled", "interpreted"]
2626

27-
compiled = ["askama", "askama_git", "horrorshow", "markup", "maud", "ructe", "sailfish"]
27+
compiled = ["askama", "askama_git", "horrorshow", "hypertext", "markup", "maud", "ructe", "sailfish", "vy"]
2828
interpreted = ["handlebars", "minijinja", "tera", "tinytemplate"]
2929

3030
askama = ["dep:askama", "_contains_compiled"]
3131
askama_git = ["dep:askama_git", "_contains_compiled"]
3232
handlebars = ["dep:handlebars", "_contains_interpreted"]
3333
horrorshow = ["dep:horrorshow", "_contains_compiled"]
34+
hypertext = ["dep:hypertext", "_contains_compiled"]
3435
markup = ["dep:markup", "_contains_compiled"]
3536
maud = ["dep:maud", "_contains_compiled"]
3637
minijinja = ["dep:minijinja", "_contains_interpreted"]
3738
ructe = ["dep:ructe", "_contains_compiled"]
3839
sailfish = ["dep:sailfish", "_contains_compiled"]
3940
tera = ["dep:tera", "_contains_interpreted"]
4041
tinytemplate = ["dep:tinytemplate", "_contains_interpreted"]
42+
vy = ["dep:vy", "_contains_compiled"]
4143

4244
_contains_compiled = []
4345
_contains_interpreted = []
@@ -49,13 +51,15 @@ askama = { version = "*", optional = true, path = "tmpls/askama", package = "tmp
4951
askama_git = { version = "*", optional = true, path = "tmpls/askama_git", package = "tmpl-askama_git" }
5052
handlebars = { version = "*", optional = true, path = "tmpls/handlebars", package = "tmpl-handlebars" }
5153
horrorshow = { version = "*", optional = true, path = "tmpls/horrorshow", package = "tmpl-horrorshow" }
54+
hypertext = { version = "*", optional = true, path = "tmpls/hypertext", package = "tmpl-hypertext" }
5255
markup = { version = "*", optional = true, path = "tmpls/markup", package = "tmpl-markup" }
5356
maud = { version = "*", optional = true, path = "tmpls/maud", package = "tmpl-maud" }
5457
minijinja = { version = "*", optional = true, path = "tmpls/minijinja", package = "tmpl-minijinja" }
5558
ructe = { version = "*", optional = true, path = "tmpls/ructe", package = "tmpl-ructe" }
5659
sailfish = { version = "*", optional = true, path = "tmpls/sailfish", package = "tmpl-sailfish" }
5760
tera = { version = "*", optional = true, path = "tmpls/tera", package = "tmpl-tera" }
5861
tinytemplate = { version = "*", optional = true, path = "tmpls/tinytemplate", package = "tmpl-tinytemplate" }
62+
vy = { version = "*", optional = true, path = "tmpls/vy", package = "tmpl-vy" }
5963

6064
ahash = { version = "0.8.11", features = ["no-rng"] }
6165
criterion = { version = "0.5.1", features = ["html_reports"] }

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,15 @@ All of them are well maintained, mature and perform HTML escaping automatically.
1818
| [askama] | [![][docs-img-askama]][docs-askama] | [![][img-repo]][repo-askama] | pre-compiled | [![][dl-askama]][askama] | [![][stars-askama]][repo-askama] | [![][contr-askama]][repo-askama] | [![][act-askama]][repo-askama] |
1919
| [handlebars] | [![][docs-img-handlebars]][docs-handlebars] | [![][img-repo]][repo-handlebars] | interpreted | [![][dl-handlebars]][handlebars] | [![][stars-handlebars]][repo-handlebars] | [![][contr-handlebars]][repo-handlebars] | [![][act-handlebars]][repo-handlebars] |
2020
| [horrorshow] | [![][docs-img-horrorshow]][docs-horrorshow] | [![][img-repo]][repo-horrorshow] | pre-compiled | [![][dl-horrorshow]][horrorshow] | [![][stars-horrorshow]][repo-horrorshow] | [![][contr-horrorshow]][repo-horrorshow] | [![][act-horrorshow]][repo-horrorshow] |
21+
| [hypertext] | [![][docs-img-hypertext]][docs-hypertext] | [![][img-repo]][repo-hypertext] | pre-compiled | [![][dl-hypertext]][hypertext] | [![][stars-hypertext]][repo-hypertext] | [![][contr-hypertext]][repo-hypertext] | [![][act-hypertext]][repo-hypertext] |
2122
| [markup] | [![][docs-img-markup]][docs-markup] | [![][img-repo]][repo-markup] | pre-compiled | [![][dl-markup]][markup] | [![][stars-markup]][repo-markup] | [![][contr-markup]][repo-markup] | [![][act-markup]][repo-markup] |
2223
| [maud] | [![][docs-img-maud]][docs-maud] | [![][img-repo]][repo-maud] | pre-compiled | [![][dl-maud]][maud] | [![][stars-maud]][repo-maud] | [![][contr-maud]][repo-maud] | [![][act-maud]][repo-maud] |
2324
| [minijinja] | [![][docs-img-minijinja]][docs-minijinja] | [![][img-repo]][repo-minijinja] | interpreted | [![][dl-minijinja]][minijinja] | [![][stars-minijinja]][repo-minijinja] | [![][contr-minijinja]][repo-minijinja] | [![][act-minijinja]][repo-minijinja] |
2425
| [ructe] | [![][docs-img-ructe]][docs-ructe] | [![][img-repo]][repo-ructe] | pre-compiled | [![][dl-ructe]][ructe] | [![][stars-ructe]][repo-ructe] | [![][contr-ructe]][repo-ructe] | [![][act-ructe]][repo-ructe] |
2526
| [sailfish] | [![][docs-img-sailfish]][docs-sailfish] | [![][img-repo]][repo-sailfish] | pre-compiled | [![][dl-sailfish]][sailfish] | [![][stars-sailfish]][repo-sailfish] | [![][contr-sailfish]][repo-sailfish] | [![][act-sailfish]][repo-sailfish] |
2627
| [tera] | [![][docs-img-tera]][docs-tera] | [![][img-repo]][repo-tera] | interpreted | [![][dl-tera]][tera] | [![][stars-tera]][repo-tera] | [![][contr-tera]][repo-tera] | [![][act-tera]][repo-tera] |
2728
| [tinytemplate] | [![][docs-img-tinytemplate]][docs-tinytemplate] | [![][img-repo]][repo-tinytemplate] | interpreted | [![][dl-tinytemplate]][tinytemplate] | [![][stars-tinytemplate]][repo-tinytemplate] | [![][contr-tinytemplate]][repo-tinytemplate] | [![][act-tinytemplate]][repo-tinytemplate] |
29+
| [vy] | [![][docs-img-vy]][docs-vy] | [![][img-repo]][repo-vy] | pre-compiled | [![][dl-vy]][vy] | [![][stars-vy]][repo-vy] | [![][contr-vy]][repo-vy] | [![][act-vy]][repo-vy] |
2830

2931
Please see also [*Rust web framework comparison*].
3032

@@ -53,87 +55,103 @@ Run `./generate-table.py` to generate the table you see above.
5355
[askama]: <https://crates.io/crates/askama/>
5456
[handlebars]: <https://crates.io/crates/handlebars/>
5557
[horrorshow]: <https://crates.io/crates/horrorshow/>
58+
[hypertext]: <https://crates.io/crates/hypertext/>
5659
[markup]: <https://crates.io/crates/markup/>
5760
[maud]: <https://crates.io/crates/maud/>
5861
[minijinja]: <https://crates.io/crates/minijinja/>
5962
[ructe]: <https://crates.io/crates/ructe/>
6063
[sailfish]: <https://crates.io/crates/sailfish/>
6164
[tera]: <https://crates.io/crates/tera/>
6265
[tinytemplate]: <https://crates.io/crates/tinytemplate/>
66+
[vy]: <https://crates.io/crates/vy/>
6367

6468
[docs-askama]: <https://docs.rs/askama/latest/askama>
6569
[docs-handlebars]: <https://docs.rs/handlebars/latest/handlebars>
6670
[docs-horrorshow]: <https://docs.rs/horrorshow/latest/horrorshow>
71+
[docs-hypertext]: <https://docs.rs/hypertext/latest/hypertext>
6772
[docs-markup]: <https://docs.rs/markup/latest/markup>
6873
[docs-maud]: <https://docs.rs/maud/latest/maud>
6974
[docs-minijinja]: <https://docs.rs/minijinja/latest/minijinja>
7075
[docs-ructe]: <https://docs.rs/ructe/latest/ructe>
7176
[docs-sailfish]: <https://docs.rs/sailfish/latest/sailfish>
7277
[docs-tera]: <https://docs.rs/tera/latest/tera>
7378
[docs-tinytemplate]: <https://docs.rs/tinytemplate/latest/tinytemplate>
79+
[docs-vy]: <https://docs.rs/vy/latest/vy>
7480

7581
[docs-img-askama]: <https://img.shields.io/docsrs/askama?label=&style=flat-square>
7682
[docs-img-handlebars]: <https://img.shields.io/docsrs/handlebars?label=&style=flat-square>
7783
[docs-img-horrorshow]: <https://img.shields.io/docsrs/horrorshow?label=&style=flat-square>
84+
[docs-img-hypertext]: <https://img.shields.io/docsrs/hypertext?label=&style=flat-square>
7885
[docs-img-markup]: <https://img.shields.io/docsrs/markup?label=&style=flat-square>
7986
[docs-img-maud]: <https://img.shields.io/docsrs/maud?label=&style=flat-square>
8087
[docs-img-minijinja]: <https://img.shields.io/docsrs/minijinja?label=&style=flat-square>
8188
[docs-img-ructe]: <https://img.shields.io/docsrs/ructe?label=&style=flat-square>
8289
[docs-img-sailfish]: <https://img.shields.io/docsrs/sailfish?label=&style=flat-square>
8390
[docs-img-tera]: <https://img.shields.io/docsrs/tera?label=&style=flat-square>
8491
[docs-img-tinytemplate]: <https://img.shields.io/docsrs/tinytemplate?label=&style=flat-square>
92+
[docs-img-vy]: <https://img.shields.io/docsrs/vy?label=&style=flat-square>
8593

8694
[dl-askama]: <https://img.shields.io/crates/dr/askama?label=&color=f8f8f8&style=flat-square>
8795
[dl-handlebars]: <https://img.shields.io/crates/dr/handlebars?label=&color=f8f8f8&style=flat-square>
8896
[dl-horrorshow]: <https://img.shields.io/crates/dr/horrorshow?label=&color=f8f8f8&style=flat-square>
97+
[dl-hypertext]: <https://img.shields.io/crates/dr/hypertext?label=&color=f8f8f8&style=flat-square>
8998
[dl-markup]: <https://img.shields.io/crates/dr/markup?label=&color=f8f8f8&style=flat-square>
9099
[dl-maud]: <https://img.shields.io/crates/dr/maud?label=&color=f8f8f8&style=flat-square>
91100
[dl-minijinja]: <https://img.shields.io/crates/dr/minijinja?label=&color=f8f8f8&style=flat-square>
92101
[dl-ructe]: <https://img.shields.io/crates/dr/ructe?label=&color=f8f8f8&style=flat-square>
93102
[dl-sailfish]: <https://img.shields.io/crates/dr/sailfish?label=&color=f8f8f8&style=flat-square>
94103
[dl-tera]: <https://img.shields.io/crates/dr/tera?label=&color=f8f8f8&style=flat-square>
95104
[dl-tinytemplate]: <https://img.shields.io/crates/dr/tinytemplate?label=&color=f8f8f8&style=flat-square>
105+
[dl-vy]: <https://img.shields.io/crates/dr/vy?label=&color=f8f8f8&style=flat-square>
96106

97107
[stars-askama]: <https://img.shields.io/github/stars/askama-rs/askama?label=&color=f8f8f8&style=flat-square>
98108
[stars-handlebars]: <https://img.shields.io/github/stars/sunng87/handlebars-rust?label=&color=f8f8f8&style=flat-square>
99109
[stars-horrorshow]: <https://img.shields.io/github/stars/Stebalien/horrorshow-rs?label=&color=f8f8f8&style=flat-square>
110+
[stars-hypertext]: <https://github.com/vidhanio/hypertext>
100111
[stars-markup]: <https://img.shields.io/github/stars/utkarshkukreti/markup.rs?label=&color=f8f8f8&style=flat-square>
101112
[stars-maud]: <https://img.shields.io/github/stars/lambda-fairy/maud?label=&color=f8f8f8&style=flat-square>
102113
[stars-minijinja]: <https://img.shields.io/github/stars/mitsuhiko/minijinja?label=&color=f8f8f8&style=flat-square>
103114
[stars-ructe]: <https://img.shields.io/github/stars/kaj/ructe?label=&color=f8f8f8&style=flat-square>
104115
[stars-sailfish]: <https://img.shields.io/github/stars/rust-sailfish/sailfish?label=&color=f8f8f8&style=flat-square>
105116
[stars-tera]: <https://img.shields.io/github/stars/Keats/tera?label=&color=f8f8f8&style=flat-square>
106117
[stars-tinytemplate]: <https://img.shields.io/github/stars/bheisler/TinyTemplate?label=&color=f8f8f8&style=flat-square>
118+
[stars-vy]: <https://img.shields.io/github/stars/JonahLund/vy?label=&color=f8f8f8&style=flat-square>
107119

108120
[contr-askama]: <https://img.shields.io/github/contributors/askama-rs/askama?label=&color=f8f8f8&style=flat-square>
109121
[contr-handlebars]: <https://img.shields.io/github/contributors/sunng87/handlebars-rust?label=&color=f8f8f8&style=flat-square>
110122
[contr-horrorshow]: <https://img.shields.io/github/contributors/Stebalien/horrorshow-rs?label=&color=f8f8f8&style=flat-square>
123+
[contr-hypertext]: <https://img.shields.io/github/contributors/vidhanio/hypertext?label=&color=f8f8f8&style=flat-square>
111124
[contr-markup]: <https://img.shields.io/github/contributors/utkarshkukreti/markup.rs?label=&color=f8f8f8&style=flat-square>
112125
[contr-maud]: <https://img.shields.io/github/contributors/lambda-fairy/maud?label=&color=f8f8f8&style=flat-square>
113126
[contr-minijinja]: <https://img.shields.io/github/contributors/mitsuhiko/minijinja?label=&color=f8f8f8&style=flat-square>
114127
[contr-ructe]: <https://img.shields.io/github/contributors/kaj/ructe?label=&color=f8f8f8&style=flat-square>
115128
[contr-sailfish]: <https://img.shields.io/github/contributors/rust-sailfish/sailfish?label=&color=f8f8f8&style=flat-square>
116129
[contr-tera]: <https://img.shields.io/github/contributors/Keats/tera?label=&color=f8f8f8&style=flat-square>
117130
[contr-tinytemplate]: <https://img.shields.io/github/contributors/bheisler/TinyTemplate?label=&color=f8f8f8&style=flat-square>
131+
[contr-vy]: <https://img.shields.io/github/contributors/JonahLund/vy?label=&color=f8f8f8&style=flat-square>
118132

119133
[act-askama]: <https://img.shields.io/github/commit-activity/y/askama-rs/askama?label=&color=f8f8f8&style=flat-square>
120134
[act-handlebars]: <https://img.shields.io/github/commit-activity/y/sunng87/handlebars-rust?label=&color=f8f8f8&style=flat-square>
121135
[act-horrorshow]: <https://img.shields.io/github/commit-activity/y/Stebalien/horrorshow-rs?label=&color=f8f8f8&style=flat-square>
136+
[act-hypertext]: <https://img.shields.io/github/commit-activity/y/vidhanio/hypertext?label=&color=f8f8f8&style=flat-square>
122137
[act-markup]: <https://img.shields.io/github/commit-activity/y/utkarshkukreti/markup.rs?label=&color=f8f8f8&style=flat-square>
123138
[act-maud]: <https://img.shields.io/github/commit-activity/y/lambda-fairy/maud?label=&color=f8f8f8&style=flat-square>
124139
[act-minijinja]: <https://img.shields.io/github/commit-activity/y/mitsuhiko/minijinja?label=&color=f8f8f8&style=flat-square>
125140
[act-ructe]: <https://img.shields.io/github/commit-activity/y/kaj/ructe?label=&color=f8f8f8&style=flat-square>
126141
[act-sailfish]: <https://img.shields.io/github/commit-activity/y/rust-sailfish/sailfish?label=&color=f8f8f8&style=flat-square>
127142
[act-tera]: <https://img.shields.io/github/commit-activity/y/Keats/tera?label=&color=f8f8f8&style=flat-square>
128143
[act-tinytemplate]: <https://img.shields.io/github/commit-activity/y/bheisler/TinyTemplate?label=&color=f8f8f8&style=flat-square>
144+
[act-vy]: <https://img.shields.io/github/commit-activity/y/JonahLund/vy?label=&color=f8f8f8&style=flat-square>
129145

130146
[repo-askama]: <https://github.com/askama-rs/askama>
131147
[repo-handlebars]: <https://github.com/sunng87/handlebars-rust>
132148
[repo-horrorshow]: <https://github.com/Stebalien/horrorshow-rs>
149+
[repo-hypertext]: <https://github.com/vidhanio/hypertext>
133150
[repo-markup]: <https://github.com/utkarshkukreti/markup.rs>
134151
[repo-maud]: <https://github.com/lambda-fairy/maud>
135152
[repo-minijinja]: <https://github.com/mitsuhiko/minijinja>
136153
[repo-ructe]: <https://github.com/kaj/ructe>
137154
[repo-sailfish]: <https://github.com/rust-sailfish/sailfish>
138155
[repo-tera]: <https://github.com/Keats/tera>
139156
[repo-tinytemplate]: <https://github.com/bheisler/TinyTemplate>
157+
[repo-vy]: <https://github.com/JonahLund/vy>

src/lib.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ macro_rules! for_each {
3535
for_each!(askama_git, group, $input:$Input, $func);
3636
#[cfg(feature = "horrorshow")]
3737
for_each!(horrorshow, group, $input:$Input, $func);
38+
#[cfg(feature = "hypertext")]
39+
for_each!(hypertext, group, $input:$Input, $func);
3840
#[cfg(feature = "markup")]
3941
for_each!(markup, group, $input:$Input, $func);
4042
#[cfg(feature = "maud")]
@@ -43,6 +45,8 @@ macro_rules! for_each {
4345
for_each!(ructe, group, $input:$Input, $func);
4446
#[cfg(feature = "sailfish")]
4547
for_each!(sailfish, group, $input:$Input, $func);
48+
#[cfg(feature = "vy")]
49+
for_each!(vy, group, $input:$Input, $func);
4650

4751
group.finish();
4852
};

src/main.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ const TMPLS: &[(&str, fn(Case) -> Result<(), Error>)] = &[
7878
("handlebars", tmpl::<handlebars::Benchmark>),
7979
#[cfg(feature = "horrorshow")]
8080
("horrorshow", tmpl::<horrorshow::Benchmark>),
81+
#[cfg(feature = "hypertext")]
82+
("hypertext", tmpl::<hypertext::Benchmark>),
8183
#[cfg(feature = "markup")]
8284
("markup", tmpl::<markup::Benchmark>),
8385
#[cfg(feature = "maud")]
@@ -92,6 +94,8 @@ const TMPLS: &[(&str, fn(Case) -> Result<(), Error>)] = &[
9294
("tera", tmpl::<tera::Benchmark>),
9395
#[cfg(feature = "tinytemplate")]
9496
("tinytemplate", tmpl::<tinytemplate::Benchmark>),
97+
#[cfg(feature = "vy")]
98+
("vy", tmpl::<vy::Benchmark>),
9599
];
96100

97101
struct Tmpls(usize);

tmpls/hypertext/Cargo.toml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[package]
2+
name = "tmpl-hypertext"
3+
version = "0.1.0"
4+
edition = "2021"
5+
publish = false
6+
license = "Apache-2.0"
7+
8+
[dependencies]
9+
tmpls = { version = "*", path = ".." }
10+
11+
hypertext = "0.6.3"

tmpls/hypertext/src/lib.rs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
use std::convert::Infallible;
2+
3+
use hypertext::{GlobalAttributes, Renderable, html_elements, maud};
4+
use tmpls::{BigTable, Teams};
5+
6+
#[derive(Debug, Default)]
7+
pub struct Benchmark;
8+
9+
impl tmpls::Benchmark for Benchmark {
10+
type Output = String;
11+
type Error = Infallible;
12+
13+
fn big_table(
14+
&mut self,
15+
output: &mut Self::Output,
16+
input: &BigTable,
17+
) -> Result<(), Self::Error> {
18+
*output = maud! {
19+
table {
20+
@for row in &input.table {
21+
tr {
22+
@for col in row {
23+
td { (*col) }
24+
}
25+
}
26+
}
27+
}
28+
}
29+
.render()
30+
.0;
31+
Ok(())
32+
}
33+
34+
fn teams(&mut self, output: &mut Self::Output, input: &Teams) -> Result<(), Self::Error> {
35+
*output = maud! {
36+
html {
37+
head {
38+
title { (input.year) }
39+
}
40+
body {
41+
h1 { "CLS " (input.year) }
42+
ul {
43+
@for (idx, team) in input.teams.iter().enumerate() {
44+
li.champion[idx == 0] {
45+
b { (team.name.as_str()) } ": " (team.score)
46+
}
47+
}
48+
}
49+
}
50+
}
51+
}
52+
.render()
53+
.0;
54+
Ok(())
55+
}
56+
}

tmpls/vy/Cargo.toml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[package]
2+
name = "tmpl-vy"
3+
version = "0.1.0"
4+
edition = "2021"
5+
publish = false
6+
license = "Apache-2.0"
7+
8+
[dependencies]
9+
tmpls = { version = "*", path = ".." }
10+
11+
vy = "0.2.0"

tmpls/vy/src/lib.rs

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
use std::convert::Infallible;
2+
3+
use tmpls::{BigTable, Output, Teams};
4+
use vy::{Buffer, IntoHtml, b, body, h1, head, html, li, table, td, title, tr, ul};
5+
6+
#[derive(Debug, Default)]
7+
pub struct Benchmark;
8+
9+
impl tmpls::Benchmark for Benchmark {
10+
type Output = WrappedBuffer;
11+
type Error = Infallible;
12+
13+
fn big_table(
14+
&mut self,
15+
output: &mut Self::Output,
16+
input: &BigTable,
17+
) -> Result<(), Self::Error> {
18+
table!(
19+
input
20+
.table
21+
.iter()
22+
.map(|row| tr!(row.iter().map(|col| td!(*col))))
23+
)
24+
.escape_and_write(&mut output.0);
25+
Ok(())
26+
}
27+
28+
fn teams(&mut self, output: &mut Self::Output, input: &Teams) -> Result<(), Self::Error> {
29+
html!(
30+
head!(title!(input.year)),
31+
body!(
32+
h1!("CLS ", input.year),
33+
ul!(input.teams.iter().enumerate().map(|(idx, team)| {
34+
li!(
35+
class = (idx == 0).then_some("champion"),
36+
b!(team.name.as_str(), ": ", team.score)
37+
)
38+
}))
39+
)
40+
)
41+
.escape_and_write(&mut output.0);
42+
Ok(())
43+
}
44+
}
45+
46+
#[derive(Default)]
47+
pub struct WrappedBuffer(Buffer);
48+
49+
impl Output for WrappedBuffer {
50+
fn clear(&mut self) {
51+
unsafe { self.0._set_len(0) };
52+
}
53+
54+
fn as_bytes(&self) -> &[u8] {
55+
self.0.as_str().as_bytes()
56+
}
57+
}

0 commit comments

Comments
 (0)