# 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 = "2024"
name = "mech-set"
version = "0.3.2"
authors = [
    "Corey Montella <corey@mech-lang.org>",
    "Steven McPhillimey <slm526@lehigh.edu>",
    "Liam Messinger <ljm426@lehigh.edu>",
    "Natalie Dumler <nad326@lehigh.edu>",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Set library for the Mech language"
homepage = "http://mech-lang.org"
documentation = "http://docs.mech-lang.org"
readme = "README.md"
keywords = [
    "mech",
    "language",
    "programming",
]
license = "Apache-2.0"
repository = "https://github.com/mech-machines/set"

[badges.gitlab]
branch = "main"
repository = "mech-lang/machines/set"

[badges.maintenance]
status = "actively-developed"

[features]
atom = ["mech-core/atom"]
base = [
    "baselib",
    "pretty_print",
    "serde",
    "compiler",
    "program",
    "set_default",
    "statements_default",
    "subscript_default",
    "mech-core/base",
]
baselib = [
    "bool",
    "string",
    "f64",
    "c64",
    "r64",
    "set",
    "map",
    "table",
    "tuple",
    "record",
    "atom",
    "enum",
    "row_vectord",
    "vectord",
    "matrixd",
    "subscript_range",
    "logical_indexing",
    "subscript_formula",
    "variable_define",
    "variable_assign",
    "kind_define",
    "kind_annotation",
    "variables",
    "functions",
    "formulas",
    "mech-core/baselib",
]
bool = ["mech-core/bool"]
c64 = [
    "complex",
    "mech-core/c64",
]
cartesian_product = ["operations"]
compiler = ["mech-core/compiler"]
complex = [
    "f64",
    "numbers",
    "mech-core/complex",
]
comprehensions = ["set"]
default = [
    "baselib",
    "pretty_print",
    "serde",
    "compiler",
    "program",
    "u8",
    "u16",
    "u32",
    "u64",
    "u128",
    "i8",
    "i16",
    "i32",
    "i64",
    "i128",
    "f32",
    "f64",
    "c64",
    "r64",
    "bool",
    "string",
    "set_default",
    "statements_default",
    "subscript_default",
    "mech-core/default",
]
difference = ["operations"]
disjoint = ["relations"]
dot_indexing = [
    "subscript",
    "mech-core/dot_indexing",
]
dynamic_matrix = [
    "matrixd",
    "vectord",
    "row_vectord",
    "mech-core/dynamic_matrix",
]
element_of = ["membership"]
enum = ["mech-core/enum"]
equals = ["relations"]
f32 = [
    "floats",
    "mech-core/f32",
]
f64 = [
    "floats",
    "mech-core/f64",
]
fixed_matrix = [
    "matrix4",
    "matrix3",
    "matrix2",
    "matrix1",
    "matrix2x3",
    "matrix3x2",
    "mech-core/fixed_matrix",
]
fixed_row_vector = [
    "row_vector4",
    "row_vector3",
    "row_vector2",
    "mech-core/fixed_row_vector",
]
fixed_vector = [
    "vector4",
    "vector3",
    "vector2",
    "mech-core/fixed_vector",
]
floats = [
    "numbers",
    "mech-core/floats",
]
formulas = ["mech-core/formulas"]
functions = [
    "symbol_table",
    "mech-core/functions",
]
i128 = [
    "signed_ints",
    "mech-core/i128",
]
i16 = [
    "signed_ints",
    "mech-core/i16",
]
i32 = [
    "signed_ints",
    "mech-core/i32",
]
i64 = [
    "signed_ints",
    "mech-core/i64",
]
i8 = [
    "signed_ints",
    "mech-core/i8",
]
insert = ["modify"]
intersection = ["operations"]
kind_annotation = [
    "functions",
    "mech-core/kind_annotation",
]
kind_define = [
    "kind_annotation",
    "statements",
    "mech-core/kind_define",
]
logical_indexing = [
    "subscript",
    "vectord",
    "bool",
    "mech-core/logical_indexing",
]
map = ["mech-core/map"]
matrix = ["mech-core/matrix"]
matrix1 = [
    "matrix",
    "mech-core/matrix1",
]
matrix2 = [
    "matrix",
    "mech-core/matrix2",
    "mech-core/matrix",
]
matrix2x3 = [
    "matrix",
    "mech-core/matrix2x3",
]
matrix3 = [
    "matrix",
    "mech-core/matrix3",
]
matrix3x2 = [
    "matrix",
    "mech-core/matrix3x2",
]
matrix4 = [
    "matrix",
    "mech-core/matrix4",
]
matrixd = [
    "matrix",
    "mech-core/matrixd",
]
membership = ["set"]
membership_default = [
    "element_of",
    "not_element_of",
]
modify = ["set"]
modify_default = [
    "insert",
    "remove",
]
no_std = ["mech-core/no_std"]
not_element_of = ["membership"]
not_equals = ["relations"]
numbers = ["mech-core/numbers"]
operations = ["set"]
operations_default = [
    "cartesian_product",
    "difference",
    "intersection",
    "powerset",
    "symmetric_difference",
    "union",
]
powerset = ["operations"]
pretty_print = ["mech-core/pretty_print"]
program = ["mech-core/program"]
proper_subset = ["relations"]
proper_superset = ["relations"]
r64 = [
    "rational",
    "mech-core/r64",
]
rational = [
    "i64",
    "numbers",
    "mech-core/rational",
]
record = [
    "tuple",
    "kind_annotation",
    "mech-core/record",
]
relations = ["set"]
relations_default = [
    "disjoint",
    "equals",
    "not_equals",
    "proper_subset",
    "proper_superset",
    "subset",
    "superset",
]
remove = ["modify"]
row_vector2 = [
    "matrix",
    "mech-core/row_vector2",
]
row_vector3 = [
    "matrix",
    "mech-core/row_vector3",
]
row_vector4 = [
    "matrix",
    "mech-core/row_vector4",
]
row_vectord = [
    "matrix",
    "mech-core/row_vectord",
]
serde = ["mech-core/serde"]
set = ["functions"]
set_default = [
    "membership_default",
    "modify_default",
    "operations_default",
    "relations_default",
    "setdata_default",
    "comprehensions",
]
setdata = ["set"]
setdata_default = ["size"]
signed_ints = [
    "numbers",
    "mech-core/signed_ints",
]
size = ["setdata"]
statements = ["mech-core/statements"]
statements_default = [
    "variable_assign",
    "variable_define",
    "kind_define",
]
stdlib = [
    "bool",
    "string",
    "u8",
    "u16",
    "u32",
    "u64",
    "u128",
    "i8",
    "i16",
    "i32",
    "i64",
    "i128",
    "f32",
    "f64",
    "c64",
    "r64",
    "set",
    "map",
    "table",
    "tuple",
    "record",
    "atom",
    "matrix1",
    "matrix2",
    "matrix3",
    "matrix4",
    "matrix2x3",
    "matrix3x2",
    "row_vector2",
    "row_vector3",
    "row_vector4",
    "vector2",
    "vector3",
    "vector4",
    "row_vectord",
    "vectord",
    "matrixd",
    "subscript_range",
    "logical_indexing",
    "swizzle",
    "subscript_formula",
    "dot_indexing",
    "variable_define",
    "variable_assign",
    "kind_define",
    "kind_annotation",
    "variables",
    "functions",
    "formulas",
]
string = ["mech-core/string"]
subscript = ["mech-core/subscript"]
subscript_default = [
    "subscript_slice",
    "subscript_range",
    "logical_indexing",
    "swizzle",
    "subscript_formula",
    "dot_indexing",
]
subscript_formula = [
    "subscript_slice",
    "formulas",
    "mech-core/subscript_formula",
]
subscript_range = [
    "subscript_slice",
    "vectord",
    "mech-core/subscript_range",
]
subscript_slice = [
    "subscript",
    "vectord",
    "mech-core/subscript_slice",
]
subset = ["relations"]
superset = ["relations"]
swizzle = [
    "subscript",
    "mech-core/swizzle",
]
symbol_table = ["mech-core/symbol_table"]
symmetric_difference = ["operations"]
table = [
    "vectord",
    "record",
    "kind_annotation",
    "mech-core/table",
]
tuple = ["mech-core/tuple"]
u128 = [
    "unsigned_ints",
    "mech-core/u128",
]
u16 = [
    "unsigned_ints",
    "mech-core/u16",
]
u32 = [
    "unsigned_ints",
    "mech-core/u32",
]
u64 = [
    "unsigned_ints",
    "mech-core/u64",
]
u8 = [
    "unsigned_ints",
    "mech-core/u8",
]
union = ["operations"]
unsigned_ints = [
    "numbers",
    "mech-core/unsigned_ints",
]
variable_assign = [
    "statements",
    "mech-core/variable_assign",
]
variable_define = [
    "statements",
    "functions",
    "mech-core/variable_define",
]
variables = [
    "variable_define",
    "symbol_table",
    "mech-core/variables",
]
vector2 = [
    "matrix",
    "mech-core/vector2",
]
vector3 = [
    "matrix",
    "mech-core/vector3",
]
vector4 = [
    "matrix",
    "mech-core/vector4",
]
vectord = [
    "matrix",
    "mech-core/vectord",
]

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

[dependencies.indexmap]
version = "2.13.0"

[dependencies.inventory]
version = "0.3.22"

[dependencies.mech-core]
version = "0.3.2"
default-features = false

[dependencies.paste]
version = "1.0.15"
