[package]
name = "malwaredb-types"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Data types and parsers for MalwareDB."
keywords.workspace = true
categories.workspace = true
exclude = ["testdata"]

[features]
default = ["elf", "macho", "office95", "officexml", "pe32", "pdf", "rtf"]
elf = ["dep:flagset"]
macho = []
office95 = ["dep:uuid", "dep:nt-time"]
officexml = ["dep:zip"]
pe32 = ["dep:flagset"]
pef = []
pdf = ["dep:pdf"]
rtf = []

[dependencies]
# External
anyhow = { workspace = true, features = ["std"] }
chrono = { workspace = true, features = ["alloc", "clock"] }
flagset = { workspace = true, optional = true }
fuzzyhash = { workspace = true }
hex = { workspace = true, features = ["alloc"] }
md-5 = { workspace = true }
nt-time = { workspace = true, features = ["chrono"], optional = true }
pdf = { workspace = true, features = ["cache"], optional = true }
tracing = { workspace = true, features = ["attributes"] }
uuid = { workspace = true, optional = true }
zip = { workspace = true, features = ["deflate"], optional = true }

[dev-dependencies]
rstest = { workspace = true }

[package.metadata.docs.rs]
all-features = true
