# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.

[package]
name = "storvsp"
edition.workspace = true
rust-version.workspace = true

[features]
ioperf = ["dep:disklayer_ram"]

# Enable generating arbitrary values of types useful for fuzzing.
arbitrary = [ "scsi_defs/arbitrary"]

# Expose some implementation details publicly, used for fuzzing.
fuzz_helpers = []

[dependencies]

disklayer_ram = { workspace = true, optional = true } # For `ioperf` modules
scsi_buffers.workspace = true
scsi_core.workspace = true
scsi_defs.workspace = true
scsidisk.workspace = true
storvsp_protocol.workspace = true
storvsp_resources.workspace = true

vmbus_async.workspace = true
vmbus_channel.workspace = true
vmbus_core.workspace = true
vmbus_ring.workspace = true

guestmem.workspace = true
vmcore.workspace = true
vm_resource.workspace = true

guid.workspace = true
fast_select.workspace = true
inspect.workspace = true
inspect_counters.workspace = true
mesh.workspace = true
oversized_box.workspace = true
pal_async.workspace = true
task_control.workspace = true
tracing_helpers.workspace = true

anyhow.workspace = true
async-trait.workspace = true
event-listener.workspace = true
futures.workspace = true
parking_lot.workspace = true
slab.workspace = true
thiserror.workspace = true
tracelimit.workspace = true
tracing.workspace = true
unicycle.workspace = true
zerocopy.workspace = true
[dev-dependencies]
criterion = { workspace = true, features = ["async"] }
disklayer_ram.workspace = true
test_with_tracing.workspace = true

[[bench]]
name = "ioperf"
harness = false
required-features = ["ioperf"]

[lints]
workspace = true
