[package] name = "julian" version = "0.5.0" edition = "2021" rust-version = "1.65" description = "Convert between Julian day numbers and Julian & Gregorian calendars" authors = ["John Thorvald Wodder II "] repository = "https://github.com/jwodder/julian-rs" license = "MIT" keywords = ["calendar", "gregorian-calendar", "julian-calendar", "julian-day"] categories = ["date-and-time"] exclude = ["/.*"] default-run = "julian" [dependencies] anyhow = { version = "1.0.75", optional = true } chrono = { version = "0.4.31", optional = true, default-features = false } csv = { version = "1.3.0", optional = true } lexopt = { version = "0.3.0", optional = true } serde = { version = "1.0.192", features = ["derive"], optional = true } thiserror = "1.0.51" [dev-dependencies] assert_matches = "1.5.0" indoc = "2.0.4" rstest = { version = "0.18.2", default-features = false } rstest_reuse = "0.6.0" [features] default = ["cli"] cli = ["dep:lexopt"] gentests = ["dep:anyhow", "dep:csv", "dep:serde"] [[bin]] name = "gentests" required-features = ["gentests"] [[bin]] name = "julian" required-features = ["cli"] [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [lints.rust] # Lint groups: future_incompatible = "deny" rust_2018_idioms = "deny" unused = { level = "deny", priority = 0 } # Set a lint in "unused" back to "warn" (to be denied again under CI): dead_code = { level = "warn", priority = 5 } # Deny various allow-by-default lints: macro_use_extern_crate = "deny" missing_debug_implementations = "deny" pointer_structural_match = "deny" single_use_lifetimes = "deny" trivial_casts = "deny" unreachable_pub = "deny" unsafe_code = "deny" unsafe_op_in_unsafe_fn = "deny" unused_import_braces = "deny" unused_lifetimes = "deny" unused_qualifications = "deny" unused_tuple_struct_fields = "deny" # Deny various warn-by-default lints: ambiguous_glob_reexports = "deny" bad_asm_style = "deny" break_with_label_and_loop = "deny" clashing_extern_declarations = "deny" confusable_idents = "deny" const_item_mutation = "deny" deprecated = "deny" deprecated_where_clause_location = "deny" deref_nullptr = "deny" drop_bounds = "deny" dropping_copy_types = "deny" dropping_references = "deny" duplicate_macro_attributes = "deny" dyn_drop = "deny" exported_private_dependencies = "deny" for_loops_over_fallibles = "deny" forgetting_copy_types = "deny" forgetting_references = "deny" function_item_references = "deny" hidden_glob_reexports = "deny" improper_ctypes = "deny" improper_ctypes_definitions = "deny" inline_no_sanitize = "deny" internal_features = "deny" invalid_from_utf8 = "deny" invalid_macro_export_arguments = "deny" invalid_nan_comparisons = "deny" invalid_value = "deny" irrefutable_let_patterns = "deny" mixed_script_confusables = "deny" named_arguments_used_positionally = "deny" no_mangle_generic_items = "deny" non_fmt_panics = "deny" non_shorthand_field_patterns = "deny" noop_method_call = "deny" opaque_hidden_inferred_bound = "deny" overlapping_range_endpoints = "deny" private_bounds = "deny" private_interfaces = "deny" refining_impl_trait = "deny" renamed_and_removed_lints = "deny" special_module_name = "deny" stable_features = "deny" suspicious_double_ref_op = "deny" temporary_cstring_as_ptr = "deny" trivial_bounds = "deny" type_alias_bounds = "deny" unconditional_recursion = "deny" undefined_naked_function_abi = "deny" ungated_async_fn_track_caller = "deny" unknown_lints = "deny" unused_associated_type_bounds = "deny" unused_comparisons = "deny" useless_ptr_null_checks = "deny" while_true = "deny" [lints.rustdoc] bare_urls = "deny" broken_intra_doc_links = "deny" invalid_codeblock_attributes = "deny" invalid_html_tags = "deny" invalid_rust_codeblocks = "deny" private_intra_doc_links = "deny" redundant_explicit_links = "deny" unescaped_backticks = "deny" [lints.clippy] # Deny all warn-by-default lints: all = "deny" # Warn on various allow-by-default lints (denied under CI): dbg_macro = "warn" todo = "warn" unimplemented = "warn" # Deny various allow-by-default lints: as_underscore = "deny" bool_to_int_with_if = "deny" borrow_as_ptr = "deny" cast_possible_truncation = "deny" cast_possible_wrap = "deny" cast_precision_loss = "deny" cast_ptr_alignment = "deny" cast_sign_loss = "deny" checked_conversions = "deny" clear_with_drain = "deny" cloned_instead_of_copied = "deny" collection_is_never_read = "deny" copy_iterator = "deny" debug_assert_with_mut_call = "deny" default_trait_access = "deny" derive_partial_eq_without_eq = "deny" doc_link_with_quotes = "deny" doc_markdown = "deny" empty_line_after_doc_comments = "deny" empty_line_after_outer_attr = "deny" empty_structs_with_brackets = "deny" equatable_if_let = "deny" exit = "deny" explicit_into_iter_loop = "deny" explicit_iter_loop = "deny" filter_map_next = "deny" flat_map_option = "deny" float_cmp = "deny" float_cmp_const = "deny" fn_to_numeric_cast_any = "deny" format_push_string = "deny" future_not_send = "deny" get_unwrap = "deny" if_then_some_else_none = "deny" ignored_unit_patterns = "deny" impl_trait_in_params = "deny" implicit_clone = "deny" implied_bounds_in_impls = "deny" imprecise_flops = "deny" index_refutable_slice = "deny" invalid_upcast_comparisons = "deny" items_after_statements = "deny" iter_not_returning_iterator = "deny" iter_with_drain = "deny" large_futures = "deny" large_types_passed_by_value = "deny" linkedlist = "deny" lossy_float_literal = "deny" manual_assert = "deny" manual_clamp = "deny" manual_instant_elapsed = "deny" manual_let_else = "deny" manual_ok_or = "deny" manual_string_new = "deny" map_unwrap_or = "deny" match_bool = "deny" match_wild_err_arm = "deny" mem_forget = "deny" mismatching_type_param_order = "deny" #missing_assert_message = "deny" missing_asserts_for_indexing = "deny" missing_panics_doc = "deny" missing_safety_doc = "deny" mixed_read_write_in_expression = "deny" mut_mut = "deny" needless_bitwise_bool = "deny" needless_collect = "deny" needless_for_each = "deny" needless_pass_by_ref_mut = "deny" needless_raw_string_hashes = "deny" needless_raw_strings = "deny" negative_feature_names = "deny" or_fun_call = "deny" path_buf_push_overwrite = "deny" pub_without_shorthand = "deny" range_minus_one = "deny" range_plus_one = "deny" rc_buffer = "deny" rc_mutex = "deny" read_zero_byte_vec = "deny" readonly_write_lock = "deny" redundant_clone = "deny" redundant_closure_for_method_calls = "deny" redundant_feature_names = "deny" ref_binding_to_reference = "deny" rest_pat_in_fully_bound_structs = "deny" same_functions_in_if_condition = "deny" semicolon_if_nothing_returned = "deny" should_panic_without_expect = "deny" single_match_else = "deny" stable_sort_primitive = "deny" string_add_assign = "deny" string_lit_as_bytes = "deny" string_lit_chars_any = "deny" string_to_string = "deny" suboptimal_flops = "deny" trailing_empty_array = "deny" trait_duplication_in_bounds = "deny" trivial_regex = "deny" try_err = "deny" type_repetition_in_bounds = "deny" unchecked_duration_subtraction = "deny" undocumented_unsafe_blocks = "deny" unicode_not_nfc = "deny" uninlined_format_args = "deny" unnecessary_join = "deny" unnecessary_safety_comment = "deny" unnecessary_safety_doc = "deny" unnecessary_self_imports = "deny" unnecessary_struct_initialization = "deny" unnecessary_wraps = "deny" unneeded_field_pattern = "deny" unnested_or_patterns = "deny" unused_async = "deny" unused_peekable = "deny" unused_rounding = "deny" unwrap_used = "deny" used_underscore_binding = "deny" wildcard_dependencies = "deny" zero_sized_map_values = "deny" missing_const_for_fn = "deny"