goldforge 0.8.1

Library for handling file formats used by GoldSrc and related engines.
Documentation
# Copyright 2025-2026 Gabriel Bjørnager Jensen.
#
# This Source Code Form is subject to the terms of
# the Mozilla Public License, v. 2.0. If a copy of
# the MPL was not distributed with this file, you
# can obtain one at:
# <https://mozilla.org/MPL/2.0/>.

[package]
name          = "goldforge"
version       = "0.8.1"
authors       = ["Gabriel Bjørnager Jensen"]
edition       = "2024"
rust-version  = "1.87"
description   = "Library for handling file formats used by GoldSrc and related engines."
documentation = "https://docs.rs/goldforge/"
readme        = "README.md"
repository    = "https://mandelbrot.dk/bjoernager/goldforge/"
license       = "MPL-2.0"

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

[dependencies]
oct = { version = "0.30", default-features = false, features = ["proc_macro"] }

[features]
default = [
	"alloc",
	"std",
]

# Dependency features:
alloc = [
	"oct/alloc",
]

std = [
	"alloc",
	"oct/std",
]

# Unstable features:
unstable_docs = [
	"oct/unstable_docs",
]

[lints.clippy]
alloc_instead_of_core               = "forbid"
arc_with_non_send_sync              = "warn"
as_pointer_underscore               = "forbid"
as_ptr_cast_mut                     = "forbid"
as_underscore                       = "forbid"
assertions_on_constants             = "warn"
assertions_on_result_states         = "warn"
assign_op_pattern                   = "warn"
assigning_clones                    = "warn"
async_yields_async                  = "forbid"
bool_to_int_with_if                 = "warn"
borrow_as_ptr                       = "forbid"
branches_sharing_code               = "warn"
cast_enum_truncation                = "forbid"
cast_lossless                       = "warn"
cast_possible_truncation            = "warn"
cast_possible_wrap                  = "warn"
cast_precision_loss                 = "warn"
cast_ptr_alignment                  = "forbid"
cast_sign_loss                      = "forbid"
checked_conversions                 = "warn"
clear_with_drain                    = "warn"
clone_on_ref_ptr                    = "warn"
cloned_instead_of_copied            = "warn"
collection_is_never_read            = "warn"
dbg_macro                           = "warn"
debug_assert_with_mut_call          = "warn"
default_constructed_unit_structs    = "forbid"
deref_by_slicing                    = "warn"
derive_partial_eq_without_eq        = "warn"
derived_hash_with_manual_eq         = "forbid"
empty_docs                          = "forbid"
empty_enum_variants_with_brackets   = "warn"
empty_line_after_doc_comments       = "forbid"
empty_line_after_outer_attr         = "forbid"
empty_loop                          = "allow"
empty_structs_with_brackets         = "warn"
enum_glob_use                       = "forbid"
enum_variant_names                  = "allow"
equatable_if_let                    = "warn"
excessive_precision                 = "allow"
expl_impl_clone_on_copy             = "warn"
explicit_deref_methods              = "warn"
explicit_into_iter_loop             = "warn"
explicit_iter_loop                  = "warn"
fallible_impl_from                  = "warn"
flat_map_option                     = "warn"
float_cmp                           = "deny"
float_cmp_const                     = "deny"
fn_to_numeric_cast                  = "forbid"
fn_to_numeric_cast_any              = "forbid"
fn_to_numeric_cast_with_truncation  = "forbid"
format_push_string                  = "warn"
from_iter_instead_of_collect        = "warn"
future_not_send                     = "forbid"
if_not_else                         = "warn"
if_then_some_else_none              = "warn"
ignored_unit_patterns               = "forbid"
implicit_clone                      = "warn"
imprecise_flops                     = "forbid"
incompatible_msrv                   = "forbid"
inconsistent_struct_constructor     = "forbid"
index_refutable_slice               = "warn"
inefficient_to_string               = "warn"
infinite_loop                       = "forbid"
into_iter_without_iter              = "warn"
invalid_upcast_comparisons          = "warn"
iter_filter_is_ok                   = "warn"
iter_filter_is_some                 = "warn"
iter_not_returning_iterator         = "warn"
iter_on_empty_collections           = "warn"
iter_on_single_items                = "warn"
iter_with_drain                     = "warn"
iter_without_into_iter              = "warn"
large_enum_variant                  = "allow"
let_unit_value                      = "forbid"
macro_use_imports                   = "warn"
manual_assert                       = "warn"
manual_c_str_literals               = "warn"
manual_instant_elapsed              = "warn"
manual_is_variant_and               = "warn"
manual_let_else                     = "warn"
manual_ok_or                        = "warn"
manual_string_new                   = "warn"
map_unwrap_or                       = "warn"
match_same_arms                     = "warn"
mismatching_type_param_order        = "warn"
missing_docs_in_private_items       = "warn"
missing_errors_doc                  = "warn"
missing_transmute_annotations       = "forbid"
mixed_read_write_in_expression      = "forbid"
never_loop                          = "warn"
mod_module_files                    = "forbid"
module_inception                    = "allow"
must_use_unit                       = "deny"
mut_mut                             = "warn"
mutex_atomic                        = "deny"
mutex_integer                       = "deny"
needless_arbitrary_self_type        = "warn"
needless_collect                    = "warn"
needless_continue                   = "warn"
needless_raw_string_hashes          = "warn"
needless_raw_strings                = "warn"
needless_type_cast                  = "warn"
no_effect_underscore_binding        = "warn"
no_mangle_with_rust_abi             = "forbid"
non_ascii_literal                   = "forbid"
nonstandard_macro_braces            = "forbid"
obfuscated_if_else                  = "allow"
option_as_ref_cloned                = "warn"
option_if_let_else                  = "warn"
option_map_unit_fn                  = "warn"
option_option                       = "warn"
path_buf_push_overwrite             = "warn"
pattern_type_mismatch               = "forbid"
precedence                          = "allow"
ptr_as_ptr                          = "forbid"
ptr_cast_constness                  = "forbid"
pub_underscore_fields               = "forbid"
range_plus_one                      = "warn"
ref_as_ptr                          = "forbid"
rc_buffer                           = "forbid"
rc_mutex                            = "forbid"
read_zero_byte_vec                  = "warn"
redundant_clone                     = "warn"
redundant_closure_for_method_calls  = "warn"
redundant_else                      = "warn"
redundant_type_annotations          = "warn"
ref_binding_to_reference            = "warn"
ref_option_ref                      = "warn"
rest_pat_in_fully_bound_structs     = "warn"
result_map_unit_fn                  = "forbid"
result_unit_err                     = "forbid"
return_self_not_must_use            = "forbid"
same_functions_in_if_condition      = "warn"
same_name_method                    = "deny"
separated_literal_suffix            = "warn"
single_char_pattern                 = "warn"
std_instead_of_alloc                = "forbid"
std_instead_of_core                 = "forbid"
str_split_at_newline                = "warn"
string_lit_as_bytes                 = "forbid"
string_lit_chars_any                = "warn"
suboptimal_flops                    = "forbid"
todo                                = "warn"
trait_duplication_in_bounds         = "forbid"
transmutes_expressible_as_ptr_casts  = "forbid"
transmute_ptr_to_ptr                = "forbid"
type_repetition_in_bounds           = "forbid"
uninhabited_references              = "forbid"
uninlined_format_args               = "forbid"
unit_arg                            = "forbid"
unit_cmp                            = "forbid"
unit_hash                           = "forbid"
unit_return_expecting_ord           = "forbid"
unnecessary_box_returns             = "forbid"
unnecessary_join                    = "warn"
unnecessary_self_imports            = "forbid"
unnecessary_wraps                   = "warn"
unneeded_field_pattern              = "warn"
unnested_or_patterns                = "warn"
unused_async                        = "warn"
unused_peekable                     = "warn"
unused_rounding                     = "warn"
unused_unit                         = "forbid"
use_self                            = "forbid"
used_underscore_binding             = "warn"
useless_let_if_seq                  = "warn"
useless_transmute                   = "deny"
zero_prefixed_literal               = "allow"
zero_ptr                            = "forbid"
verbose_bit_mask                    = "warn"
wildcard_dependencies               = "forbid"

[lints.rust]
invalid_atomic_ordering = "forbid"
missing_docs            = "warn"