From db762f02f9e3d9806ae1b9b2e3f7ba7328cdd217 Mon Sep 17 00:00:00 2001 From: "Dylan M. Taylor" Date: Wed, 11 Nov 2026 21:30:17 -0500 Subject: [PATCH] craft-rtf, craft-webp: restore the outlook and vp8 features later squash merges dropped (#1072) #991 (craft-codepage) was squash-merged from a branch that predated #961 and carried its older crates/rtf/Cargo.toml, dropping the outlook feature, its craft-mime dependency and the proptest dev-dependency; the outlook module was left behind an undefined cfg. #1028 did the same to crates/webp/Cargo.toml after #1021, dropping the vp8 feature and its craft-video dependency. --- Cargo.lock | 3 +++ crates/rtf/Cargo.toml | 10 ++++++++++ crates/webp/Cargo.toml | 3 +++ 3 files changed, 16 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 7bcbe4339..9f1beb697 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1776,7 +1776,9 @@ name = "craft-rtf" version = "0.1.0" dependencies = [ "craft-codepage", + "craft-mime", "encoding_rs", + "proptest", ] [[package]] @@ -2003,6 +2005,7 @@ dependencies = [ name = "craft-webp" version = "0.1.0" dependencies = [ + "craft-video", "image", "thiserror 2.0.21", ] diff --git a/crates/rtf/Cargo.toml b/crates/rtf/Cargo.toml index 59f139917..ecff5a2fe 100644 --- a/crates/rtf/Cargo.toml +++ b/crates/rtf/Cargo.toml @@ -10,7 +10,17 @@ repository.workspace = true [lints] workspace = true +[features] +# `outlook`: compressed RTF ([MS-OXRTFCP]) and the text or encapsulated HTML ([MS-OXRTFEX]) of a +# mail item's body. +outlook = ["dep:craft-mime"] + [dependencies] craft-codepage = { workspace = true } +# Character sets by Windows code page number, for the `outlook` module. +craft-mime = { workspace = true, optional = true } # The East Asian multibyte code pages (932, 936, 949, 950). encoding_rs = { workspace = true } + +[dev-dependencies] +proptest = { workspace = true } diff --git a/crates/webp/Cargo.toml b/crates/webp/Cargo.toml index 5a0901a3a..c5f7364b6 100644 --- a/crates/webp/Cargo.toml +++ b/crates/webp/Cargo.toml @@ -13,10 +13,13 @@ workspace = true [features] # Decoding every frame through the `image` crate's WebP decoder, with bounded memory. frames = ["dep:image"] +# Lossy animations from RGBA frames through craft-video's VP8 key-frame encoder. +vp8 = ["dep:craft-video"] [dependencies] thiserror = { workspace = true } image = { version = "0.25", default-features = false, features = ["webp"], optional = true } +craft-video = { workspace = true, optional = true, features = ["vp8-encode"] } [dev-dependencies] # Decodes the files the writer makes and writes still test files; not a product dependency.