# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
name = "hypen-engine"
version = "0.4.22"
authors = ["Hypen Contributors"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A Rust implementation of the Hypen engine"
readme = "README.md"
license = "MIT"
repository = "https://github.com/hypen-lang/hypen-engine-rs"

[package.metadata.wasm-pack.profile.release]
wasm-opt = false

[profile.release]
opt-level = "z"
lto = true
codegen-units = 1

[lib]
name = "hypen_engine"
crate-type = [
    "cdylib",
    "rlib",
]
path = "src/lib.rs"

[[bin]]
name = "uniffi-bindgen"
path = "src/bin/uniffi-bindgen.rs"
required-features = ["uniffi"]

[[test]]
name = "bench_latency"
path = "tests/bench_latency.rs"

[[test]]
name = "test_common"
path = "tests/test_common.rs"

[[test]]
name = "test_control_flow"
path = "tests/test_control_flow.rs"

[[test]]
name = "test_create_tree"
path = "tests/test_create_tree.rs"

[[test]]
name = "test_debug_bindings"
path = "tests/test_debug_bindings.rs"

[[test]]
name = "test_debug_serialization"
path = "tests/test_debug_serialization.rs"

[[test]]
name = "test_dispatch_action"
path = "tests/test_dispatch_action.rs"

[[test]]
name = "test_dispatch_event"
path = "tests/test_dispatch_event.rs"

[[test]]
name = "test_engine"
path = "tests/test_engine.rs"

[[test]]
name = "test_engine_dependency_flow"
path = "tests/test_engine_dependency_flow.rs"

[[test]]
name = "test_import_integration"
path = "tests/test_import_integration.rs"

[[test]]
name = "test_imports"
path = "tests/test_imports.rs"

[[test]]
name = "test_ir_component"
path = "tests/test_ir_component.rs"

[[test]]
name = "test_ir_expand"
path = "tests/test_ir_expand.rs"

[[test]]
name = "test_lifecycle_component"
path = "tests/test_lifecycle_component.rs"

[[test]]
name = "test_lifecycle_module"
path = "tests/test_lifecycle_module.rs"

[[test]]
name = "test_lifecycle_resource"
path = "tests/test_lifecycle_resource.rs"

[[test]]
name = "test_list_reactive_updates"
path = "tests/test_list_reactive_updates.rs"

[[test]]
name = "test_logger"
path = "tests/test_logger.rs"

[[test]]
name = "test_performance_golden"
path = "tests/test_performance_golden.rs"

[[test]]
name = "test_reactive_binding"
path = "tests/test_reactive_binding.rs"

[[test]]
name = "test_reactive_graph"
path = "tests/test_reactive_graph.rs"

[[test]]
name = "test_reactive_scheduler"
path = "tests/test_reactive_scheduler.rs"

[[test]]
name = "test_reconcile_dependencies"
path = "tests/test_reconcile_dependencies.rs"

[[test]]
name = "test_reconcile_diff"
path = "tests/test_reconcile_diff.rs"

[[test]]
name = "test_reconcile_patch"
path = "tests/test_reconcile_patch.rs"

[[test]]
name = "test_reconcile_tree"
path = "tests/test_reconcile_tree.rs"

[[test]]
name = "test_remote_protocol_edge_cases"
path = "tests/test_remote_protocol_edge_cases.rs"

[[test]]
name = "test_render_dirty_nodes"
path = "tests/test_render_dirty_nodes.rs"

[[test]]
name = "test_serialize_remote"
path = "tests/test_serialize_remote.rs"

[[test]]
name = "test_state"
path = "tests/test_state.rs"

[[test]]
name = "test_state_update_debug"
path = "tests/test_state_update_debug.rs"

[[test]]
name = "test_template_string_binding"
path = "tests/test_template_string_binding.rs"

[[test]]
name = "test_text_props"
path = "tests/test_text_props.rs"

[[test]]
name = "test_wasi_ffi"
path = "tests/test_wasi_ffi.rs"

[[test]]
name = "test_wasm_integration"
path = "tests/test_wasm_integration.rs"

[[bench]]
name = "state_clone"
path = "benches/state_clone.rs"
harness = false

[dependencies.exprimo]
version = "0.6.1"

[dependencies.hypen-parser]
version = "0.4.22"

[dependencies.hypen-tailwind-parse]
version = "0.4.22"

[dependencies.im]
version = "15.1"
features = ["serde"]

[dependencies.indexmap]
version = "2.0"
features = ["serde"]

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.serde_json]
version = "1.0"

[dependencies.slotmap]
version = "1.0"

[dependencies.thiserror]
version = "1.0"
optional = true

[dependencies.uniffi]
version = "0.28"
features = ["cli"]
optional = true

[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]

[dev-dependencies.lazy_static]
version = "1.4"

[build-dependencies.uniffi]
version = "0.28"
features = ["build"]
optional = true

[features]
component-model = ["wasi"]
console_error_panic_hook = ["dep:console_error_panic_hook"]
default = []
js = [
    "wasm-bindgen",
    "serde-wasm-bindgen",
    "js-sys",
    "web-sys",
]
uniffi = [
    "dep:uniffi",
    "dep:thiserror",
]
wasi = []

[target.'cfg(target_arch = "wasm32")'.dependencies.console_error_panic_hook]
version = "0.1"
optional = true

[target.'cfg(target_arch = "wasm32")'.dependencies.js-sys]
version = "0.3"
optional = true

[target.'cfg(target_arch = "wasm32")'.dependencies.serde-wasm-bindgen]
version = "0.6"
optional = true

[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2"
optional = true

[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3"
features = ["console"]
optional = true
