CST.rs
Caret-Separated Text (or CST) is a key-value pair format represented by digits or words as keys and the value as text enclosed between carets. (e.g. <key> ^<text>^
) Any text which is not enclosed with carets is considered a comment and ignored. Neither strings nor comments may use the caret character. CST.NET is a library for parsing the CST format.
Requirements
- Rust 2021 Edition or newer
- IDEs or Editors
Installation
[]
= "0.1"
Development
[]
= { = "https://github.com/tonytins/cst.rs", = "develop" }
Usage
Basic Parsing
At it's core, CST.rs uses the get_entry() function to parse the CST format.
use get_entry;
In Production
Based on FreeSO's APIs, the UIText struct takes care of the heavy lifting of locating and parsing CST files.
use UIText;
The Sims Online required each translation file be prefixed with a number and underscores, known as the ID, that are located in uitext/[language].dir
. The IDs were used to locate the file, regardless the name. CST.rs follows this convention because it's the only known use of the format.
uitext/english.dir/_154_miscstrings.cst
uitext/swedish.dir/_154_miscstrings.cst
Note that that UIText
struct is simply a wrapper around the the above mentioned get_entry()
function.
Examples
More complex stuff can be found in the examples directory.
Note
For the most part, this is to be a architecturally similar port of CST.NET. With some changes to make it more idiomatic in Rust.
License
This project is dual-licensed under the BSD-3-Clause or the UNLICENSE.