# 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 = "2018"
name = "opener"
version = "0.6.1"
authors = ["Brian Bowman <seeker14491@gmail.com>"]
description = "Open a file or link using the system default program."
readme = "README.md"
keywords = [
    "open",
    "default",
    "launcher",
    "browser",
]
categories = ["os"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/Seeker14491/opener"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[dev-dependencies.version-sync]
version = "0.9"

[features]
reveal = [
    "dep:url",
    "dep:dbus",
    "winapi/shtypes",
    "winapi/objbase",
]

[target."cfg(target_os = \"linux\")".dependencies.bstr]
version = "1"

[target."cfg(target_os = \"linux\")".dependencies.dbus]
version = "0.9"
features = ["vendored"]
optional = true

[target."cfg(target_os = \"linux\")".dependencies.url]
version = "2"
optional = true

[target."cfg(windows)".dependencies.normpath]
version = "1"

[target."cfg(windows)".dependencies.winapi]
version = "0.3"
features = ["shellapi"]

[badges.appveyor]
branch = "master"
repository = "Seeker14491/opener"
service = "github"

[badges.maintenance]
status = "passively-maintained"

[badges.travis-ci]
branch = "master"
repository = "Seeker14491/opener"
