Crate libmake

Source
Expand description

§LibMake

A code generator to reduce repetitive tasks and build high-quality Rust libraries.

Part of the Mini Functions family of libraries.

Rust

Rust Crates.io Lib.rs GitHub License

§Overview

LibMake is a tool designed to quickly help create high-quality Rust libraries by generating a set of pre-filled and pre-defined templated files. This opinionated boilerplate scaffolding tool aims to greatly reduce development time and minimize repetitive tasks, allowing you to focus on your business logic while enforcing standards, best practices, consistency, and providing style guides for your library.

With LibMake, you can easily generate a new Rust library code base structure with all the necessary files, layouts, build configurations, code, tests, benchmarks, documentation, and much more in a matter of seconds.

The library is designed to be used as a command-line tool. It is available on Crates.io and Lib.rs.

§Features

LibMake offers the following features and benefits:

  • Create your Rust library with ease using the command-line interface or by providing a configuration file in CSV, JSON, or YAML format.
  • Rapidly generate new library projects with a pre-defined structure and boilerplate code that you can customize with your own template.
  • Automatically generate basic functions, methods, and macros to get you started with your Rust library.
  • Enforce best practices and standards with starter documentation, test suites, and benchmark suites that are designed to help you get up and running quickly.

§Usage

  • serde: Enable serialization/deserialization via serde

Modules§

args
The args module contains functions for processing command-line arguments.
cli
The cli module contains functions for processing command-line input.
generator
The generator module contains functions for generating the new library.
generators
The generators module contains functions for generating code.
interface
The interface module contains functions for displaying the interface.
macros
The macros module contains functions for generating macros.
models
The models module contains the models for the library.
utilities
The utilities module contains utility functions for the library.
utils
The utils module contains a function for reading a CSV file at the given file path and returns the value of the given field.

Macros§

extract_param
Extracts a parameter from a Matches object.
generate_file
Macro to simplify the match logic for file generation.
macro_ascii
A macro for generating ASCII art from text.
macro_check_directory
macro_check_directory Macro
macro_cleanup_directories
macro_cleanup_directories Macro
macro_create_directories
macro_create_directories Macro
macro_execute_and_log
Executes a shell command and logs the start, completion, and any errors.
macro_generate_files
Attempts to generate file templates from the given parameters.
macro_generate_from_args
Attempts to generate file templates from command-line arguments.
macro_generate_from_config
Attempts to generate file templates from a configuration file.
macro_generate_from_csv
Attempts to generate file templates from a CSV file.
macro_generate_from_ini
Attempts to generate file templates from a INI file.
macro_generate_from_json
Attempts to generate file templates from a JSON file.
macro_generate_from_toml
Attempts to generate file templates from a TOML file.
macro_generate_from_yaml
Attempts to generate file templates from a YAML file.
macro_get_field
Macro to generate a function that retrieves a field value from a JSON file.
macro_log_info
Custom logging macro for various log levels and formats.
macro_replace_placeholder
Replaces placeholders in a given line with corresponding values from the provided parameters.

Functions§

run
Initializes the logger with a file logger and a terminal logger and processes command-line arguments to generate the new library.