Crate strs_tools

Source
Expand description

§Module :: strs_tools

experimental rust-status docs.rs Open in Gitpod discord

Tools to manipulate strings.

§Basic use-case

#[ cfg( all( feature = "string_split", not( feature = "no_std" ) ) ) ]
{
  /* delimeter exists */
  let src = "abc def";
  let iter = strs_tools::string::split()
  .src( src )
  .delimeter( " " )
  .stripping( false )
  .perform();
  let iterated = iter.map( | e | String::from( e.string ) ).collect::< Vec< _ > >();
  assert_eq!( iterated, vec![ "abc", " ", "def" ] );

  /* delimeter not exists */
  let src = "abc def";
  let iter = strs_tools::string::split()
  .src( src )
  .delimeter( "g" )
  .perform();
  let iterated = iter.map( | e | String::from( e.string ) ).collect::< Vec< _ > >();
  assert_eq!( iterated, vec![ "abc def" ] );
}

§To add to your project

cargo add strs_tools

§Features

This crate uses a feature-based system to allow you to include only the functionality you need. Key features include:

  • string_indentation: Tools for adding indentation to lines of text.
  • string_isolate: Functions to isolate parts of a string based on delimiters.
  • string_parse_request: Utilities for parsing command-like strings with subjects and key-value parameters.
  • string_parse_number: Functions for parsing numerical values from strings.
  • string_split: Advanced string splitting capabilities with various options for delimiters, quoting, and segment preservation.

You can enable features in your Cargo.toml file, for example:

[dependencies.strs_tools]
version = "0.18.0" # Or your desired version
features = [ "string_split", "string_indentation" ]

The default feature enables a common set of functionalities. The full feature enables all available string utilities. Refer to the Cargo.toml for a complete list of features and their dependencies.

§Try out from the repository

git clone https://github.com/Wandalen/wTools
cd wTools/module/core/strs_tools
cargo run --example strs_tools_trivial

Re-exports§

pub use super::string;
pub use orphan::*;
pub use super::string::orphan::*;

Modules§

exposed
Exposed namespace of the module.
orphan
Parented namespace of the module.
own
Own namespace of the module.
prelude
Namespace of the module to include with use module::*.
string
String tools.