feat: code block, fix encoding, add markdown sample

This commit is contained in:
Artemy Egorov 2024-08-02 16:28:56 +03:00
parent 04757e69ef
commit 1dbb7e2e66
14 changed files with 345 additions and 78 deletions

View file

@ -1,6 +1,6 @@
# Heading 1
## Heading 2
**Some bold and *italic* ~~text~~**
Some **bold** *italic* ~~strike~~
`Hello world`
@ -12,9 +12,6 @@
Lorem ipsum [![](https://my-picture)](https://some-link) dolor sit amet consequetur adipiscing elit
|col1|col2|col3|
|:--:|----|---:|
|Never gonna|give you|up|
|Never gonna|let you|down|
|Never gonna|run around|and desert you|
|**abc**|![def](https://some-picture)|*xyz*|
| col1 | col2 | col3 |
| ----------- | -------- | ---- |
| Never gonna | give you | up |

View file

@ -1,9 +1,9 @@
use dalet::{
abstractions::{HeadingLevel, Tag, ToDaletl},
abstractions::{Body, HeadingLevel, NotNullBody, Tag, TextOrNullArgument, ToDaletl},
daletpack::*,
};
use flate2::Compression;
use std::io::Write;
use std::io::{read_to_string, Write};
#[macro_export]
macro_rules! iprint {
@ -31,23 +31,64 @@ pub fn compress_zlib(data: &Vec<u8>) -> std::io::Result<Vec<u8>> {
#[test]
fn bench() {
let mut page: Vec<Tag> = vec![
// Tag::H("I am heading".to_owned(), HeadingLevel::One),
// Tag::H("Heading 2".to_owned(), HeadingLevel::Two),
let page: Vec<Tag> = vec![
Tag::H("I am heading".to_owned(), HeadingLevel::One),
Tag::H("Heading 2".to_owned(), HeadingLevel::Two),
Tag::El(NotNullBody::Tags(vec![
Tag::El(NotNullBody::Text("Some ".to_owned())),
Tag::B("bold".to_owned()),
Tag::I("italic".to_owned()),
Tag::S("strike".to_owned()),
])),
Tag::Br,
Tag::Code("Hello world".to_owned(), TextOrNullArgument::Null),
Tag::Br,
Tag::Ol(vec![
Tag::El(NotNullBody::Text("abc".to_owned())),
Tag::El(NotNullBody::Tags(vec![
Tag::El(NotNullBody::Text("def".to_owned())),
Tag::Ol(vec![
Tag::El(NotNullBody::Text("defabc".to_owned())),
Tag::El(NotNullBody::Text("defdef".to_owned())),
]),
])),
Tag::El(NotNullBody::Text("xyz".to_owned())),
]),
Tag::Br,
Tag::El(NotNullBody::Tags(vec![
Tag::El(NotNullBody::Text("Lorem ipsum ".to_owned())),
Tag::Link(
Body::Tags(vec![Tag::Img("https://my-picture".to_owned())]),
"https://some-link".to_owned(),
),
Tag::El(NotNullBody::Text(
" dolor sit amet consequetur adipiscing elit".to_owned(),
)),
])),
Tag::Table(vec![
Tag::Tpcol(vec![
Tag::El(NotNullBody::Text("Col 1".to_owned())),
Tag::El(NotNullBody::Text("Col 2".to_owned())),
Tag::El(NotNullBody::Text("Col 3".to_owned())),
]),
Tag::Tcol(vec![
Tag::El(NotNullBody::Text("Never gonna".to_owned())),
Tag::El(NotNullBody::Text("give you".to_owned())),
Tag::El(NotNullBody::Text("up".to_owned())),
]),
]),
];
for i in 0..500 {
page.push(Tag::H(format!("{}. Heading", i), HeadingLevel::One))
}
let dalet_page = page.to_daletl();
let daletpack = iprint!("Daletpack", encode(&dalet_page).unwrap());
let markdown = iprint!("Markdown", include_str!("./bench.md").as_bytes().to_vec());
let daletpack = iprint!("Daletpack", encode_no_compress(&dalet_page).unwrap());
let messagepack = iprint!("Messagepack", rmp_serde::to_vec(&dalet_page).unwrap());
let bincode = iprint!("Bincode", bincode::serialize(&dalet_page).unwrap());
println!();
iprint!("Markdown zstd", utils::compress_zstd(&markdown).unwrap());
iprint!("Daletpack zstd", utils::compress_zstd(&daletpack).unwrap());
iprint!(
"Messagepack zstd",
@ -57,18 +98,18 @@ fn bench() {
println!();
iprint!("Markdown Zlib", compress_zlib(&markdown).unwrap());
iprint!("Daletpack Zlib", compress_zlib(&daletpack).unwrap());
iprint!("Messagepack Zlib", compress_zlib(&messagepack).unwrap());
iprint!("Bincode Zlib", compress_zlib(&bincode).unwrap());
println!();
iprint!("Markdown deflate", compress_deflate(&markdown).unwrap());
iprint!("Daletpack deflate", compress_deflate(&daletpack).unwrap());
iprint!(
"Messagepack deflate",
compress_deflate(&messagepack).unwrap()
);
iprint!("Bincode deflate", compress_deflate(&bincode).unwrap());
// fs::write("./test.daletpack", daletpack).unwrap();
}