Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a964475234 | |||
| 79c60e00d8 | |||
| 3c63914ffd | |||
| 20b52dbdb1 | |||
| feba099ed2 |
@@ -1,39 +0,0 @@
|
|||||||
name: Documentation
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ master ]
|
|
||||||
|
|
||||||
env:
|
|
||||||
CARGO_TERM_COLOR: always
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Install latest toolchain
|
|
||||||
uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: stable
|
|
||||||
default: true
|
|
||||||
override: true
|
|
||||||
- name: Build Docs
|
|
||||||
run: cargo doc --color=always
|
|
||||||
- name: Copy docs and push
|
|
||||||
run: |
|
|
||||||
git config --global user.name 'github-actions[bot]'
|
|
||||||
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
|
|
||||||
git checkout gh-pages
|
|
||||||
|
|
||||||
rm -rf docs
|
|
||||||
cp -r target/doc ./docs
|
|
||||||
cp index.html docs/
|
|
||||||
|
|
||||||
git add docs
|
|
||||||
git commit -am "Auto Generated Documentation"
|
|
||||||
git push
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
name: Rust Build Test
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ master ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ master ]
|
|
||||||
|
|
||||||
env:
|
|
||||||
CARGO_TERM_COLOR: always
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Build
|
|
||||||
run: cargo build --verbose
|
|
||||||
- name: Run tests
|
|
||||||
run: cargo test --verbose
|
|
||||||
@@ -1,4 +1,2 @@
|
|||||||
/target
|
/target
|
||||||
Cargo.lock
|
Cargo.lock
|
||||||
index.html
|
|
||||||
docs
|
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
[package]
|
|
||||||
name = "ntext"
|
|
||||||
version = "0.2.1"
|
|
||||||
authors = ["Uttarayan Mondal <uttarayan21@gmail.com>"]
|
|
||||||
edition = "2018"
|
|
||||||
description = "A rust library to write numbers as words"
|
|
||||||
readme = "README.md"
|
|
||||||
documentation = "https://uttarayan21.github.io/ntext-rs"
|
|
||||||
repository = "https://github.com/uttarayan21/ntext-rs"
|
|
||||||
license-file = "LICENSE"
|
|
||||||
publish = false
|
|
||||||
|
|
||||||
@@ -1,674 +0,0 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
Version 3, 29 June 2007
|
|
||||||
|
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The GNU General Public License is a free, copyleft license for
|
|
||||||
software and other kinds of works.
|
|
||||||
|
|
||||||
The licenses for most software and other practical works are designed
|
|
||||||
to take away your freedom to share and change the works. By contrast,
|
|
||||||
the GNU General Public License is intended to guarantee your freedom to
|
|
||||||
share and change all versions of a program--to make sure it remains free
|
|
||||||
software for all its users. We, the Free Software Foundation, use the
|
|
||||||
GNU General Public License for most of our software; it applies also to
|
|
||||||
any other work released this way by its authors. You can apply it to
|
|
||||||
your programs, too.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
|
||||||
have the freedom to distribute copies of free software (and charge for
|
|
||||||
them if you wish), that you receive source code or can get it if you
|
|
||||||
want it, that you can change the software or use pieces of it in new
|
|
||||||
free programs, and that you know you can do these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to prevent others from denying you
|
|
||||||
these rights or asking you to surrender the rights. Therefore, you have
|
|
||||||
certain responsibilities if you distribute copies of the software, or if
|
|
||||||
you modify it: responsibilities to respect the freedom of others.
|
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
|
||||||
gratis or for a fee, you must pass on to the recipients the same
|
|
||||||
freedoms that you received. You must make sure that they, too, receive
|
|
||||||
or can get the source code. And you must show them these terms so they
|
|
||||||
know their rights.
|
|
||||||
|
|
||||||
Developers that use the GNU GPL protect your rights with two steps:
|
|
||||||
(1) assert copyright on the software, and (2) offer you this License
|
|
||||||
giving you legal permission to copy, distribute and/or modify it.
|
|
||||||
|
|
||||||
For the developers' and authors' protection, the GPL clearly explains
|
|
||||||
that there is no warranty for this free software. For both users' and
|
|
||||||
authors' sake, the GPL requires that modified versions be marked as
|
|
||||||
changed, so that their problems will not be attributed erroneously to
|
|
||||||
authors of previous versions.
|
|
||||||
|
|
||||||
Some devices are designed to deny users access to install or run
|
|
||||||
modified versions of the software inside them, although the manufacturer
|
|
||||||
can do so. This is fundamentally incompatible with the aim of
|
|
||||||
protecting users' freedom to change the software. The systematic
|
|
||||||
pattern of such abuse occurs in the area of products for individuals to
|
|
||||||
use, which is precisely where it is most unacceptable. Therefore, we
|
|
||||||
have designed this version of the GPL to prohibit the practice for those
|
|
||||||
products. If such problems arise substantially in other domains, we
|
|
||||||
stand ready to extend this provision to those domains in future versions
|
|
||||||
of the GPL, as needed to protect the freedom of users.
|
|
||||||
|
|
||||||
Finally, every program is threatened constantly by software patents.
|
|
||||||
States should not allow patents to restrict development and use of
|
|
||||||
software on general-purpose computers, but in those that do, we wish to
|
|
||||||
avoid the special danger that patents applied to a free program could
|
|
||||||
make it effectively proprietary. To prevent this, the GPL assures that
|
|
||||||
patents cannot be used to render the program non-free.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
0. Definitions.
|
|
||||||
|
|
||||||
"This License" refers to version 3 of the GNU General Public License.
|
|
||||||
|
|
||||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
|
||||||
works, such as semiconductor masks.
|
|
||||||
|
|
||||||
"The Program" refers to any copyrightable work licensed under this
|
|
||||||
License. Each licensee is addressed as "you". "Licensees" and
|
|
||||||
"recipients" may be individuals or organizations.
|
|
||||||
|
|
||||||
To "modify" a work means to copy from or adapt all or part of the work
|
|
||||||
in a fashion requiring copyright permission, other than the making of an
|
|
||||||
exact copy. The resulting work is called a "modified version" of the
|
|
||||||
earlier work or a work "based on" the earlier work.
|
|
||||||
|
|
||||||
A "covered work" means either the unmodified Program or a work based
|
|
||||||
on the Program.
|
|
||||||
|
|
||||||
To "propagate" a work means to do anything with it that, without
|
|
||||||
permission, would make you directly or secondarily liable for
|
|
||||||
infringement under applicable copyright law, except executing it on a
|
|
||||||
computer or modifying a private copy. Propagation includes copying,
|
|
||||||
distribution (with or without modification), making available to the
|
|
||||||
public, and in some countries other activities as well.
|
|
||||||
|
|
||||||
To "convey" a work means any kind of propagation that enables other
|
|
||||||
parties to make or receive copies. Mere interaction with a user through
|
|
||||||
a computer network, with no transfer of a copy, is not conveying.
|
|
||||||
|
|
||||||
An interactive user interface displays "Appropriate Legal Notices"
|
|
||||||
to the extent that it includes a convenient and prominently visible
|
|
||||||
feature that (1) displays an appropriate copyright notice, and (2)
|
|
||||||
tells the user that there is no warranty for the work (except to the
|
|
||||||
extent that warranties are provided), that licensees may convey the
|
|
||||||
work under this License, and how to view a copy of this License. If
|
|
||||||
the interface presents a list of user commands or options, such as a
|
|
||||||
menu, a prominent item in the list meets this criterion.
|
|
||||||
|
|
||||||
1. Source Code.
|
|
||||||
|
|
||||||
The "source code" for a work means the preferred form of the work
|
|
||||||
for making modifications to it. "Object code" means any non-source
|
|
||||||
form of a work.
|
|
||||||
|
|
||||||
A "Standard Interface" means an interface that either is an official
|
|
||||||
standard defined by a recognized standards body, or, in the case of
|
|
||||||
interfaces specified for a particular programming language, one that
|
|
||||||
is widely used among developers working in that language.
|
|
||||||
|
|
||||||
The "System Libraries" of an executable work include anything, other
|
|
||||||
than the work as a whole, that (a) is included in the normal form of
|
|
||||||
packaging a Major Component, but which is not part of that Major
|
|
||||||
Component, and (b) serves only to enable use of the work with that
|
|
||||||
Major Component, or to implement a Standard Interface for which an
|
|
||||||
implementation is available to the public in source code form. A
|
|
||||||
"Major Component", in this context, means a major essential component
|
|
||||||
(kernel, window system, and so on) of the specific operating system
|
|
||||||
(if any) on which the executable work runs, or a compiler used to
|
|
||||||
produce the work, or an object code interpreter used to run it.
|
|
||||||
|
|
||||||
The "Corresponding Source" for a work in object code form means all
|
|
||||||
the source code needed to generate, install, and (for an executable
|
|
||||||
work) run the object code and to modify the work, including scripts to
|
|
||||||
control those activities. However, it does not include the work's
|
|
||||||
System Libraries, or general-purpose tools or generally available free
|
|
||||||
programs which are used unmodified in performing those activities but
|
|
||||||
which are not part of the work. For example, Corresponding Source
|
|
||||||
includes interface definition files associated with source files for
|
|
||||||
the work, and the source code for shared libraries and dynamically
|
|
||||||
linked subprograms that the work is specifically designed to require,
|
|
||||||
such as by intimate data communication or control flow between those
|
|
||||||
subprograms and other parts of the work.
|
|
||||||
|
|
||||||
The Corresponding Source need not include anything that users
|
|
||||||
can regenerate automatically from other parts of the Corresponding
|
|
||||||
Source.
|
|
||||||
|
|
||||||
The Corresponding Source for a work in source code form is that
|
|
||||||
same work.
|
|
||||||
|
|
||||||
2. Basic Permissions.
|
|
||||||
|
|
||||||
All rights granted under this License are granted for the term of
|
|
||||||
copyright on the Program, and are irrevocable provided the stated
|
|
||||||
conditions are met. This License explicitly affirms your unlimited
|
|
||||||
permission to run the unmodified Program. The output from running a
|
|
||||||
covered work is covered by this License only if the output, given its
|
|
||||||
content, constitutes a covered work. This License acknowledges your
|
|
||||||
rights of fair use or other equivalent, as provided by copyright law.
|
|
||||||
|
|
||||||
You may make, run and propagate covered works that you do not
|
|
||||||
convey, without conditions so long as your license otherwise remains
|
|
||||||
in force. You may convey covered works to others for the sole purpose
|
|
||||||
of having them make modifications exclusively for you, or provide you
|
|
||||||
with facilities for running those works, provided that you comply with
|
|
||||||
the terms of this License in conveying all material for which you do
|
|
||||||
not control copyright. Those thus making or running the covered works
|
|
||||||
for you must do so exclusively on your behalf, under your direction
|
|
||||||
and control, on terms that prohibit them from making any copies of
|
|
||||||
your copyrighted material outside their relationship with you.
|
|
||||||
|
|
||||||
Conveying under any other circumstances is permitted solely under
|
|
||||||
the conditions stated below. Sublicensing is not allowed; section 10
|
|
||||||
makes it unnecessary.
|
|
||||||
|
|
||||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
|
||||||
|
|
||||||
No covered work shall be deemed part of an effective technological
|
|
||||||
measure under any applicable law fulfilling obligations under article
|
|
||||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
|
||||||
similar laws prohibiting or restricting circumvention of such
|
|
||||||
measures.
|
|
||||||
|
|
||||||
When you convey a covered work, you waive any legal power to forbid
|
|
||||||
circumvention of technological measures to the extent such circumvention
|
|
||||||
is effected by exercising rights under this License with respect to
|
|
||||||
the covered work, and you disclaim any intention to limit operation or
|
|
||||||
modification of the work as a means of enforcing, against the work's
|
|
||||||
users, your or third parties' legal rights to forbid circumvention of
|
|
||||||
technological measures.
|
|
||||||
|
|
||||||
4. Conveying Verbatim Copies.
|
|
||||||
|
|
||||||
You may convey verbatim copies of the Program's source code as you
|
|
||||||
receive it, in any medium, provided that you conspicuously and
|
|
||||||
appropriately publish on each copy an appropriate copyright notice;
|
|
||||||
keep intact all notices stating that this License and any
|
|
||||||
non-permissive terms added in accord with section 7 apply to the code;
|
|
||||||
keep intact all notices of the absence of any warranty; and give all
|
|
||||||
recipients a copy of this License along with the Program.
|
|
||||||
|
|
||||||
You may charge any price or no price for each copy that you convey,
|
|
||||||
and you may offer support or warranty protection for a fee.
|
|
||||||
|
|
||||||
5. Conveying Modified Source Versions.
|
|
||||||
|
|
||||||
You may convey a work based on the Program, or the modifications to
|
|
||||||
produce it from the Program, in the form of source code under the
|
|
||||||
terms of section 4, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) The work must carry prominent notices stating that you modified
|
|
||||||
it, and giving a relevant date.
|
|
||||||
|
|
||||||
b) The work must carry prominent notices stating that it is
|
|
||||||
released under this License and any conditions added under section
|
|
||||||
7. This requirement modifies the requirement in section 4 to
|
|
||||||
"keep intact all notices".
|
|
||||||
|
|
||||||
c) You must license the entire work, as a whole, under this
|
|
||||||
License to anyone who comes into possession of a copy. This
|
|
||||||
License will therefore apply, along with any applicable section 7
|
|
||||||
additional terms, to the whole of the work, and all its parts,
|
|
||||||
regardless of how they are packaged. This License gives no
|
|
||||||
permission to license the work in any other way, but it does not
|
|
||||||
invalidate such permission if you have separately received it.
|
|
||||||
|
|
||||||
d) If the work has interactive user interfaces, each must display
|
|
||||||
Appropriate Legal Notices; however, if the Program has interactive
|
|
||||||
interfaces that do not display Appropriate Legal Notices, your
|
|
||||||
work need not make them do so.
|
|
||||||
|
|
||||||
A compilation of a covered work with other separate and independent
|
|
||||||
works, which are not by their nature extensions of the covered work,
|
|
||||||
and which are not combined with it such as to form a larger program,
|
|
||||||
in or on a volume of a storage or distribution medium, is called an
|
|
||||||
"aggregate" if the compilation and its resulting copyright are not
|
|
||||||
used to limit the access or legal rights of the compilation's users
|
|
||||||
beyond what the individual works permit. Inclusion of a covered work
|
|
||||||
in an aggregate does not cause this License to apply to the other
|
|
||||||
parts of the aggregate.
|
|
||||||
|
|
||||||
6. Conveying Non-Source Forms.
|
|
||||||
|
|
||||||
You may convey a covered work in object code form under the terms
|
|
||||||
of sections 4 and 5, provided that you also convey the
|
|
||||||
machine-readable Corresponding Source under the terms of this License,
|
|
||||||
in one of these ways:
|
|
||||||
|
|
||||||
a) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by the
|
|
||||||
Corresponding Source fixed on a durable physical medium
|
|
||||||
customarily used for software interchange.
|
|
||||||
|
|
||||||
b) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by a
|
|
||||||
written offer, valid for at least three years and valid for as
|
|
||||||
long as you offer spare parts or customer support for that product
|
|
||||||
model, to give anyone who possesses the object code either (1) a
|
|
||||||
copy of the Corresponding Source for all the software in the
|
|
||||||
product that is covered by this License, on a durable physical
|
|
||||||
medium customarily used for software interchange, for a price no
|
|
||||||
more than your reasonable cost of physically performing this
|
|
||||||
conveying of source, or (2) access to copy the
|
|
||||||
Corresponding Source from a network server at no charge.
|
|
||||||
|
|
||||||
c) Convey individual copies of the object code with a copy of the
|
|
||||||
written offer to provide the Corresponding Source. This
|
|
||||||
alternative is allowed only occasionally and noncommercially, and
|
|
||||||
only if you received the object code with such an offer, in accord
|
|
||||||
with subsection 6b.
|
|
||||||
|
|
||||||
d) Convey the object code by offering access from a designated
|
|
||||||
place (gratis or for a charge), and offer equivalent access to the
|
|
||||||
Corresponding Source in the same way through the same place at no
|
|
||||||
further charge. You need not require recipients to copy the
|
|
||||||
Corresponding Source along with the object code. If the place to
|
|
||||||
copy the object code is a network server, the Corresponding Source
|
|
||||||
may be on a different server (operated by you or a third party)
|
|
||||||
that supports equivalent copying facilities, provided you maintain
|
|
||||||
clear directions next to the object code saying where to find the
|
|
||||||
Corresponding Source. Regardless of what server hosts the
|
|
||||||
Corresponding Source, you remain obligated to ensure that it is
|
|
||||||
available for as long as needed to satisfy these requirements.
|
|
||||||
|
|
||||||
e) Convey the object code using peer-to-peer transmission, provided
|
|
||||||
you inform other peers where the object code and Corresponding
|
|
||||||
Source of the work are being offered to the general public at no
|
|
||||||
charge under subsection 6d.
|
|
||||||
|
|
||||||
A separable portion of the object code, whose source code is excluded
|
|
||||||
from the Corresponding Source as a System Library, need not be
|
|
||||||
included in conveying the object code work.
|
|
||||||
|
|
||||||
A "User Product" is either (1) a "consumer product", which means any
|
|
||||||
tangible personal property which is normally used for personal, family,
|
|
||||||
or household purposes, or (2) anything designed or sold for incorporation
|
|
||||||
into a dwelling. In determining whether a product is a consumer product,
|
|
||||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
|
||||||
product received by a particular user, "normally used" refers to a
|
|
||||||
typical or common use of that class of product, regardless of the status
|
|
||||||
of the particular user or of the way in which the particular user
|
|
||||||
actually uses, or expects or is expected to use, the product. A product
|
|
||||||
is a consumer product regardless of whether the product has substantial
|
|
||||||
commercial, industrial or non-consumer uses, unless such uses represent
|
|
||||||
the only significant mode of use of the product.
|
|
||||||
|
|
||||||
"Installation Information" for a User Product means any methods,
|
|
||||||
procedures, authorization keys, or other information required to install
|
|
||||||
and execute modified versions of a covered work in that User Product from
|
|
||||||
a modified version of its Corresponding Source. The information must
|
|
||||||
suffice to ensure that the continued functioning of the modified object
|
|
||||||
code is in no case prevented or interfered with solely because
|
|
||||||
modification has been made.
|
|
||||||
|
|
||||||
If you convey an object code work under this section in, or with, or
|
|
||||||
specifically for use in, a User Product, and the conveying occurs as
|
|
||||||
part of a transaction in which the right of possession and use of the
|
|
||||||
User Product is transferred to the recipient in perpetuity or for a
|
|
||||||
fixed term (regardless of how the transaction is characterized), the
|
|
||||||
Corresponding Source conveyed under this section must be accompanied
|
|
||||||
by the Installation Information. But this requirement does not apply
|
|
||||||
if neither you nor any third party retains the ability to install
|
|
||||||
modified object code on the User Product (for example, the work has
|
|
||||||
been installed in ROM).
|
|
||||||
|
|
||||||
The requirement to provide Installation Information does not include a
|
|
||||||
requirement to continue to provide support service, warranty, or updates
|
|
||||||
for a work that has been modified or installed by the recipient, or for
|
|
||||||
the User Product in which it has been modified or installed. Access to a
|
|
||||||
network may be denied when the modification itself materially and
|
|
||||||
adversely affects the operation of the network or violates the rules and
|
|
||||||
protocols for communication across the network.
|
|
||||||
|
|
||||||
Corresponding Source conveyed, and Installation Information provided,
|
|
||||||
in accord with this section must be in a format that is publicly
|
|
||||||
documented (and with an implementation available to the public in
|
|
||||||
source code form), and must require no special password or key for
|
|
||||||
unpacking, reading or copying.
|
|
||||||
|
|
||||||
7. Additional Terms.
|
|
||||||
|
|
||||||
"Additional permissions" are terms that supplement the terms of this
|
|
||||||
License by making exceptions from one or more of its conditions.
|
|
||||||
Additional permissions that are applicable to the entire Program shall
|
|
||||||
be treated as though they were included in this License, to the extent
|
|
||||||
that they are valid under applicable law. If additional permissions
|
|
||||||
apply only to part of the Program, that part may be used separately
|
|
||||||
under those permissions, but the entire Program remains governed by
|
|
||||||
this License without regard to the additional permissions.
|
|
||||||
|
|
||||||
When you convey a copy of a covered work, you may at your option
|
|
||||||
remove any additional permissions from that copy, or from any part of
|
|
||||||
it. (Additional permissions may be written to require their own
|
|
||||||
removal in certain cases when you modify the work.) You may place
|
|
||||||
additional permissions on material, added by you to a covered work,
|
|
||||||
for which you have or can give appropriate copyright permission.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, for material you
|
|
||||||
add to a covered work, you may (if authorized by the copyright holders of
|
|
||||||
that material) supplement the terms of this License with terms:
|
|
||||||
|
|
||||||
a) Disclaiming warranty or limiting liability differently from the
|
|
||||||
terms of sections 15 and 16 of this License; or
|
|
||||||
|
|
||||||
b) Requiring preservation of specified reasonable legal notices or
|
|
||||||
author attributions in that material or in the Appropriate Legal
|
|
||||||
Notices displayed by works containing it; or
|
|
||||||
|
|
||||||
c) Prohibiting misrepresentation of the origin of that material, or
|
|
||||||
requiring that modified versions of such material be marked in
|
|
||||||
reasonable ways as different from the original version; or
|
|
||||||
|
|
||||||
d) Limiting the use for publicity purposes of names of licensors or
|
|
||||||
authors of the material; or
|
|
||||||
|
|
||||||
e) Declining to grant rights under trademark law for use of some
|
|
||||||
trade names, trademarks, or service marks; or
|
|
||||||
|
|
||||||
f) Requiring indemnification of licensors and authors of that
|
|
||||||
material by anyone who conveys the material (or modified versions of
|
|
||||||
it) with contractual assumptions of liability to the recipient, for
|
|
||||||
any liability that these contractual assumptions directly impose on
|
|
||||||
those licensors and authors.
|
|
||||||
|
|
||||||
All other non-permissive additional terms are considered "further
|
|
||||||
restrictions" within the meaning of section 10. If the Program as you
|
|
||||||
received it, or any part of it, contains a notice stating that it is
|
|
||||||
governed by this License along with a term that is a further
|
|
||||||
restriction, you may remove that term. If a license document contains
|
|
||||||
a further restriction but permits relicensing or conveying under this
|
|
||||||
License, you may add to a covered work material governed by the terms
|
|
||||||
of that license document, provided that the further restriction does
|
|
||||||
not survive such relicensing or conveying.
|
|
||||||
|
|
||||||
If you add terms to a covered work in accord with this section, you
|
|
||||||
must place, in the relevant source files, a statement of the
|
|
||||||
additional terms that apply to those files, or a notice indicating
|
|
||||||
where to find the applicable terms.
|
|
||||||
|
|
||||||
Additional terms, permissive or non-permissive, may be stated in the
|
|
||||||
form of a separately written license, or stated as exceptions;
|
|
||||||
the above requirements apply either way.
|
|
||||||
|
|
||||||
8. Termination.
|
|
||||||
|
|
||||||
You may not propagate or modify a covered work except as expressly
|
|
||||||
provided under this License. Any attempt otherwise to propagate or
|
|
||||||
modify it is void, and will automatically terminate your rights under
|
|
||||||
this License (including any patent licenses granted under the third
|
|
||||||
paragraph of section 11).
|
|
||||||
|
|
||||||
However, if you cease all violation of this License, then your
|
|
||||||
license from a particular copyright holder is reinstated (a)
|
|
||||||
provisionally, unless and until the copyright holder explicitly and
|
|
||||||
finally terminates your license, and (b) permanently, if the copyright
|
|
||||||
holder fails to notify you of the violation by some reasonable means
|
|
||||||
prior to 60 days after the cessation.
|
|
||||||
|
|
||||||
Moreover, your license from a particular copyright holder is
|
|
||||||
reinstated permanently if the copyright holder notifies you of the
|
|
||||||
violation by some reasonable means, this is the first time you have
|
|
||||||
received notice of violation of this License (for any work) from that
|
|
||||||
copyright holder, and you cure the violation prior to 30 days after
|
|
||||||
your receipt of the notice.
|
|
||||||
|
|
||||||
Termination of your rights under this section does not terminate the
|
|
||||||
licenses of parties who have received copies or rights from you under
|
|
||||||
this License. If your rights have been terminated and not permanently
|
|
||||||
reinstated, you do not qualify to receive new licenses for the same
|
|
||||||
material under section 10.
|
|
||||||
|
|
||||||
9. Acceptance Not Required for Having Copies.
|
|
||||||
|
|
||||||
You are not required to accept this License in order to receive or
|
|
||||||
run a copy of the Program. Ancillary propagation of a covered work
|
|
||||||
occurring solely as a consequence of using peer-to-peer transmission
|
|
||||||
to receive a copy likewise does not require acceptance. However,
|
|
||||||
nothing other than this License grants you permission to propagate or
|
|
||||||
modify any covered work. These actions infringe copyright if you do
|
|
||||||
not accept this License. Therefore, by modifying or propagating a
|
|
||||||
covered work, you indicate your acceptance of this License to do so.
|
|
||||||
|
|
||||||
10. Automatic Licensing of Downstream Recipients.
|
|
||||||
|
|
||||||
Each time you convey a covered work, the recipient automatically
|
|
||||||
receives a license from the original licensors, to run, modify and
|
|
||||||
propagate that work, subject to this License. You are not responsible
|
|
||||||
for enforcing compliance by third parties with this License.
|
|
||||||
|
|
||||||
An "entity transaction" is a transaction transferring control of an
|
|
||||||
organization, or substantially all assets of one, or subdividing an
|
|
||||||
organization, or merging organizations. If propagation of a covered
|
|
||||||
work results from an entity transaction, each party to that
|
|
||||||
transaction who receives a copy of the work also receives whatever
|
|
||||||
licenses to the work the party's predecessor in interest had or could
|
|
||||||
give under the previous paragraph, plus a right to possession of the
|
|
||||||
Corresponding Source of the work from the predecessor in interest, if
|
|
||||||
the predecessor has it or can get it with reasonable efforts.
|
|
||||||
|
|
||||||
You may not impose any further restrictions on the exercise of the
|
|
||||||
rights granted or affirmed under this License. For example, you may
|
|
||||||
not impose a license fee, royalty, or other charge for exercise of
|
|
||||||
rights granted under this License, and you may not initiate litigation
|
|
||||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
|
||||||
any patent claim is infringed by making, using, selling, offering for
|
|
||||||
sale, or importing the Program or any portion of it.
|
|
||||||
|
|
||||||
11. Patents.
|
|
||||||
|
|
||||||
A "contributor" is a copyright holder who authorizes use under this
|
|
||||||
License of the Program or a work on which the Program is based. The
|
|
||||||
work thus licensed is called the contributor's "contributor version".
|
|
||||||
|
|
||||||
A contributor's "essential patent claims" are all patent claims
|
|
||||||
owned or controlled by the contributor, whether already acquired or
|
|
||||||
hereafter acquired, that would be infringed by some manner, permitted
|
|
||||||
by this License, of making, using, or selling its contributor version,
|
|
||||||
but do not include claims that would be infringed only as a
|
|
||||||
consequence of further modification of the contributor version. For
|
|
||||||
purposes of this definition, "control" includes the right to grant
|
|
||||||
patent sublicenses in a manner consistent with the requirements of
|
|
||||||
this License.
|
|
||||||
|
|
||||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
|
||||||
patent license under the contributor's essential patent claims, to
|
|
||||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
|
||||||
propagate the contents of its contributor version.
|
|
||||||
|
|
||||||
In the following three paragraphs, a "patent license" is any express
|
|
||||||
agreement or commitment, however denominated, not to enforce a patent
|
|
||||||
(such as an express permission to practice a patent or covenant not to
|
|
||||||
sue for patent infringement). To "grant" such a patent license to a
|
|
||||||
party means to make such an agreement or commitment not to enforce a
|
|
||||||
patent against the party.
|
|
||||||
|
|
||||||
If you convey a covered work, knowingly relying on a patent license,
|
|
||||||
and the Corresponding Source of the work is not available for anyone
|
|
||||||
to copy, free of charge and under the terms of this License, through a
|
|
||||||
publicly available network server or other readily accessible means,
|
|
||||||
then you must either (1) cause the Corresponding Source to be so
|
|
||||||
available, or (2) arrange to deprive yourself of the benefit of the
|
|
||||||
patent license for this particular work, or (3) arrange, in a manner
|
|
||||||
consistent with the requirements of this License, to extend the patent
|
|
||||||
license to downstream recipients. "Knowingly relying" means you have
|
|
||||||
actual knowledge that, but for the patent license, your conveying the
|
|
||||||
covered work in a country, or your recipient's use of the covered work
|
|
||||||
in a country, would infringe one or more identifiable patents in that
|
|
||||||
country that you have reason to believe are valid.
|
|
||||||
|
|
||||||
If, pursuant to or in connection with a single transaction or
|
|
||||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
|
||||||
covered work, and grant a patent license to some of the parties
|
|
||||||
receiving the covered work authorizing them to use, propagate, modify
|
|
||||||
or convey a specific copy of the covered work, then the patent license
|
|
||||||
you grant is automatically extended to all recipients of the covered
|
|
||||||
work and works based on it.
|
|
||||||
|
|
||||||
A patent license is "discriminatory" if it does not include within
|
|
||||||
the scope of its coverage, prohibits the exercise of, or is
|
|
||||||
conditioned on the non-exercise of one or more of the rights that are
|
|
||||||
specifically granted under this License. You may not convey a covered
|
|
||||||
work if you are a party to an arrangement with a third party that is
|
|
||||||
in the business of distributing software, under which you make payment
|
|
||||||
to the third party based on the extent of your activity of conveying
|
|
||||||
the work, and under which the third party grants, to any of the
|
|
||||||
parties who would receive the covered work from you, a discriminatory
|
|
||||||
patent license (a) in connection with copies of the covered work
|
|
||||||
conveyed by you (or copies made from those copies), or (b) primarily
|
|
||||||
for and in connection with specific products or compilations that
|
|
||||||
contain the covered work, unless you entered into that arrangement,
|
|
||||||
or that patent license was granted, prior to 28 March 2007.
|
|
||||||
|
|
||||||
Nothing in this License shall be construed as excluding or limiting
|
|
||||||
any implied license or other defenses to infringement that may
|
|
||||||
otherwise be available to you under applicable patent law.
|
|
||||||
|
|
||||||
12. No Surrender of Others' Freedom.
|
|
||||||
|
|
||||||
If conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot convey a
|
|
||||||
covered work so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you may
|
|
||||||
not convey it at all. For example, if you agree to terms that obligate you
|
|
||||||
to collect a royalty for further conveying from those to whom you convey
|
|
||||||
the Program, the only way you could satisfy both those terms and this
|
|
||||||
License would be to refrain entirely from conveying the Program.
|
|
||||||
|
|
||||||
13. Use with the GNU Affero General Public License.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, you have
|
|
||||||
permission to link or combine any covered work with a work licensed
|
|
||||||
under version 3 of the GNU Affero General Public License into a single
|
|
||||||
combined work, and to convey the resulting work. The terms of this
|
|
||||||
License will continue to apply to the part which is the covered work,
|
|
||||||
but the special requirements of the GNU Affero General Public License,
|
|
||||||
section 13, concerning interaction through a network will apply to the
|
|
||||||
combination as such.
|
|
||||||
|
|
||||||
14. Revised Versions of this License.
|
|
||||||
|
|
||||||
The Free Software Foundation may publish revised and/or new versions of
|
|
||||||
the GNU General Public License from time to time. Such new versions will
|
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
|
||||||
address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the
|
|
||||||
Program specifies that a certain numbered version of the GNU General
|
|
||||||
Public License "or any later version" applies to it, you have the
|
|
||||||
option of following the terms and conditions either of that numbered
|
|
||||||
version or of any later version published by the Free Software
|
|
||||||
Foundation. If the Program does not specify a version number of the
|
|
||||||
GNU General Public License, you may choose any version ever published
|
|
||||||
by the Free Software Foundation.
|
|
||||||
|
|
||||||
If the Program specifies that a proxy can decide which future
|
|
||||||
versions of the GNU General Public License can be used, that proxy's
|
|
||||||
public statement of acceptance of a version permanently authorizes you
|
|
||||||
to choose that version for the Program.
|
|
||||||
|
|
||||||
Later license versions may give you additional or different
|
|
||||||
permissions. However, no additional obligations are imposed on any
|
|
||||||
author or copyright holder as a result of your choosing to follow a
|
|
||||||
later version.
|
|
||||||
|
|
||||||
15. Disclaimer of Warranty.
|
|
||||||
|
|
||||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
|
||||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
|
||||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
|
||||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
|
||||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
|
||||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
16. Limitation of Liability.
|
|
||||||
|
|
||||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
|
||||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
|
||||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
|
||||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
|
||||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
|
||||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
|
||||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
|
||||||
SUCH DAMAGES.
|
|
||||||
|
|
||||||
17. Interpretation of Sections 15 and 16.
|
|
||||||
|
|
||||||
If the disclaimer of warranty and limitation of liability provided
|
|
||||||
above cannot be given local legal effect according to their terms,
|
|
||||||
reviewing courts shall apply local law that most closely approximates
|
|
||||||
an absolute waiver of all civil liability in connection with the
|
|
||||||
Program, unless a warranty or assumption of liability accompanies a
|
|
||||||
copy of the Program in return for a fee.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
|
||||||
possible use to the public, the best way to achieve this is to make it
|
|
||||||
free software which everyone can redistribute and change under these terms.
|
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
|
||||||
to attach them to the start of each source file to most effectively
|
|
||||||
state the exclusion of warranty; and each file should have at least
|
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
If the program does terminal interaction, make it output a short
|
|
||||||
notice like this when it starts in an interactive mode:
|
|
||||||
|
|
||||||
<program> Copyright (C) <year> <name of author>
|
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
|
||||||
This is free software, and you are welcome to redistribute it
|
|
||||||
under certain conditions; type `show c' for details.
|
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
|
||||||
parts of the General Public License. Of course, your program's commands
|
|
||||||
might be different; for a GUI interface, you would use an "about box".
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or school,
|
|
||||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
|
||||||
For more information on this, and how to apply and follow the GNU GPL, see
|
|
||||||
<https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
The GNU General Public License does not permit incorporating your program
|
|
||||||
into proprietary programs. If your program is a subroutine library, you
|
|
||||||
may consider it more useful to permit linking proprietary applications with
|
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
|
||||||
Public License instead of this License. But first, please read
|
|
||||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
# ntext-rs
|
|
||||||
|
|
||||||
[](https://github.com/uttarayan21/ntext-rs/actions/workflows/docs.yaml)
|
|
||||||
[](https://github.com/uttarayan21/ntext-rs/actions/workflows/rust.yaml)
|
|
||||||
|
|
||||||
Documentation of [ntext-rs](https://uttarayan21.github.io/ntext-rs) generated by cargo doc.
|
|
||||||
|
|
||||||
A rust library to get numbers (usize) as words
|
|
||||||
|
|
||||||
`12345 ` -> `Twelve Thousand,Three Hundred,Forty-Five`
|
|
||||||
|
|
||||||
Add to cargo.toml
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[dependencies]
|
|
||||||
ntext = { git = "https://github.com/uttarayan21/ntext" }
|
|
||||||
```
|
|
||||||
|
|
||||||
Example program
|
|
||||||
|
|
||||||
```rust
|
|
||||||
extern crate ntext;
|
|
||||||
use ntext::to_text;
|
|
||||||
fn main() {
|
|
||||||
println!("{}",to_text!(12345));
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
which should output
|
|
||||||
`Twelve Thousand,Three Hundred,Forty-Five`
|
|
||||||
|
|
||||||
Check the [documentation](https://uttarayan21.github.io/ntext-rs) which has more examples and is usually up to date.
|
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
These documentation pages include resources by third parties. This copyright
|
||||||
|
file applies only to those resources. The following third party resources are
|
||||||
|
included, and carry their own copyright notices and license terms:
|
||||||
|
|
||||||
|
* Fira Sans (FiraSans-Regular.woff, FiraSans-Medium.woff):
|
||||||
|
|
||||||
|
Copyright (c) 2014, Mozilla Foundation https://mozilla.org/
|
||||||
|
with Reserved Font Name Fira Sans.
|
||||||
|
|
||||||
|
Copyright (c) 2014, Telefonica S.A.
|
||||||
|
|
||||||
|
Licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
See FiraSans-LICENSE.txt.
|
||||||
|
|
||||||
|
* rustdoc.css, main.js, and playpen.js:
|
||||||
|
|
||||||
|
Copyright 2015 The Rust Developers.
|
||||||
|
Licensed under the Apache License, Version 2.0 (see LICENSE-APACHE.txt) or
|
||||||
|
the MIT license (LICENSE-MIT.txt) at your option.
|
||||||
|
|
||||||
|
* normalize.css:
|
||||||
|
|
||||||
|
Copyright (c) Nicolas Gallagher and Jonathan Neal.
|
||||||
|
Licensed under the MIT license (see LICENSE-MIT.txt).
|
||||||
|
|
||||||
|
* Source Code Pro (SourceCodePro-Regular.woff, SourceCodePro-Semibold.woff):
|
||||||
|
|
||||||
|
Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/),
|
||||||
|
with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark
|
||||||
|
of Adobe Systems Incorporated in the United States and/or other countries.
|
||||||
|
|
||||||
|
Licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
See SourceCodePro-LICENSE.txt.
|
||||||
|
|
||||||
|
* Source Serif Pro (SourceSerifPro-Regular.ttf.woff,
|
||||||
|
SourceSerifPro-Bold.ttf.woff, SourceSerifPro-It.ttf.woff):
|
||||||
|
|
||||||
|
Copyright 2014 Adobe Systems Incorporated (http://www.adobe.com/), with
|
||||||
|
Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of
|
||||||
|
Adobe Systems Incorporated in the United States and/or other countries.
|
||||||
|
|
||||||
|
Licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
See SourceSerifPro-LICENSE.txt.
|
||||||
|
|
||||||
|
This copyright file is intended to be distributed with rustdoc output.
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
Digitized data copyright (c) 2012-2015, The Mozilla Foundation and Telefonica S.A.
|
||||||
|
with Reserved Font Name < Fira >,
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
@@ -0,0 +1,201 @@
|
|||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
Permission is hereby granted, free of charge, to any
|
||||||
|
person obtaining a copy of this software and associated
|
||||||
|
documentation files (the "Software"), to deal in the
|
||||||
|
Software without restriction, including without
|
||||||
|
limitation the rights to use, copy, modify, merge,
|
||||||
|
publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software
|
||||||
|
is furnished to do so, subject to the following
|
||||||
|
conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice
|
||||||
|
shall be included in all copies or substantial portions
|
||||||
|
of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
|
||||||
|
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
||||||
|
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
||||||
|
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
||||||
|
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
DEALINGS IN THE SOFTWARE.
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
|
||||||
|
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
Copyright 2014-2018 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries.
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
|
||||||
|
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="1792" height="1792" viewBox="0 0 1792 1792"><path d="M1615 0q70 0 122.5 46.5t52.5 116.5q0 63-45 151-332 629-465 752-97 91-218 91-126 0-216.5-92.5t-90.5-219.5q0-128 92-212l638-579q59-54 130-54zm-909 1034q39 76 106.5 130t150.5 76l1 71q4 213-129.5 347t-348.5 134q-123 0-218-46.5t-152.5-127.5-86.5-183-29-220q7 5 41 30t62 44.5 59 36.5 46 17q41 0 55-37 25-66 57.5-112.5t69.5-76 88-47.5 103-25.5 125-10.5z"/></svg>
|
||||||
|
After Width: | Height: | Size: 455 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="Layer_1" width="128" height="128" enable-background="new 0 0 128 128" version="1.1" viewBox="-30 -20 176 176" xml:space="preserve"><g><line x1="111" x2="64" y1="40.5" y2="87.499" fill="none" stroke="#2F3435" stroke-linecap="square" stroke-miterlimit="10" stroke-width="12"/><line x1="64" x2="17" y1="87.499" y2="40.5" fill="none" stroke="#2F3435" stroke-linecap="square" stroke-miterlimit="10" stroke-width="12"/></g></svg>
|
||||||
|
After Width: | Height: | Size: 510 B |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;">
|
||||||
|
<defs>
|
||||||
|
<style type="text/css"><![CDATA[
|
||||||
|
#logo {
|
||||||
|
fill-rule: nonzero;
|
||||||
|
}
|
||||||
|
#logo-teeth {
|
||||||
|
stroke: #000000;
|
||||||
|
stroke-width: 0.92px;
|
||||||
|
}
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
#logo {
|
||||||
|
fill: #FFFFFF;
|
||||||
|
fill-rule: nonzero;
|
||||||
|
}
|
||||||
|
#logo-teeth {
|
||||||
|
fill: #FFFFFF;
|
||||||
|
stroke: #FFFFFF;
|
||||||
|
stroke-width: 0.92px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]]></style>
|
||||||
|
</defs>
|
||||||
|
<path id="logo" d="M15.993,1.54c-7.972,0 -14.461,6.492 -14.461,14.462c0,7.969 6.492,14.461 14.461,14.461c7.97,0 14.462,-6.492 14.462,-14.461c0,-7.97 -6.492,-14.462 -14.462,-14.462Zm-0.021,1.285c0.511,0.013 0.924,0.439 0.924,0.951c0,0.522 -0.43,0.952 -0.952,0.952c-0.522,0 -0.951,-0.43 -0.951,-0.952c0,0 0,0 0,0c0,-0.522 0.429,-0.952 0.951,-0.952c0.01,0 0.019,0.001 0.028,0.001Zm2.178,1.566c3.379,0.633 6.313,2.723 8.016,5.709l-1.123,2.533c-0.193,0.438 0.006,0.952 0.44,1.147l2.16,0.958c0.067,0.675 0.076,1.355 0.025,2.031l-1.202,0c-0.12,0 -0.169,0.08 -0.169,0.196l0,0.551c0,1.297 -0.731,1.582 -1.373,1.652c-0.612,0.07 -1.288,-0.257 -1.374,-0.63c-0.361,-2.029 -0.961,-2.46 -1.909,-3.21c1.178,-0.746 2.401,-1.85 2.401,-3.325c0,-1.594 -1.092,-2.597 -1.835,-3.09c-1.046,-0.688 -2.203,-0.826 -2.515,-0.826l-12.421,0c1.717,-1.918 4.02,-3.218 6.55,-3.696l1.466,1.536c0.33,0.346 0.878,0.361 1.223,0.028l1.64,-1.564Zm-13.522,7.043c0.511,0.015 0.924,0.44 0.924,0.951c0,0.522 -0.43,0.952 -0.952,0.952c-0.522,0 -0.951,-0.43 -0.951,-0.952c0,0 0,0 0,0c0,-0.522 0.429,-0.951 0.951,-0.951c0.009,0 0.019,0 0.028,0Zm22.685,0.043c0.511,0.015 0.924,0.44 0.924,0.951c0,0.522 -0.43,0.952 -0.952,0.952c-0.522,0 -0.951,-0.43 -0.951,-0.952c0,0 0,0 0,0c0,-0.522 0.429,-0.952 0.951,-0.952c0.01,0 0.019,0 0.028,0.001Zm-20.892,0.153l1.658,0l0,7.477l-3.347,0c-0.414,-1.452 -0.542,-2.97 -0.38,-4.47l2.05,-0.912c0.438,-0.195 0.637,-0.706 0.441,-1.144l-0.422,-0.951Zm6.92,0.079l3.949,0c0.205,0 1.441,0.236 1.441,1.163c0,0.768 -0.948,1.043 -1.728,1.043l-3.665,0l0.003,-2.206Zm0,5.373l3.026,0c0.275,0 1.477,0.079 1.86,1.615c0.119,0.471 0.385,2.007 0.566,2.499c0.18,0.551 0.911,1.652 1.691,1.652l4.938,0c-0.331,0.444 -0.693,0.863 -1.083,1.255l-2.01,-0.432c-0.468,-0.101 -0.93,0.199 -1.031,0.667l-0.477,2.228c-3.104,1.406 -6.672,1.389 -9.762,-0.046l-0.478,-2.228c-0.101,-0.468 -0.56,-0.767 -1.028,-0.667l-1.967,0.423c-0.365,-0.377 -0.704,-0.778 -1.016,-1.2l9.567,0c0.107,0 0.181,-0.018 0.181,-0.119l0,-3.384c0,-0.097 -0.074,-0.119 -0.181,-0.119l-2.799,0l0.003,-2.144Zm-4.415,7.749c0.512,0.015 0.924,0.44 0.924,0.951c0,0.522 -0.429,0.952 -0.951,0.952c-0.522,0 -0.952,-0.43 -0.952,-0.952c0,0 0,0 0,0c0,-0.522 0.43,-0.952 0.952,-0.952c0.009,0 0.018,0.001 0.027,0.001Zm14.089,0.043c0.511,0.015 0.924,0.439 0.923,0.951c0,0.522 -0.429,0.952 -0.951,0.952c-0.522,0 -0.951,-0.43 -0.951,-0.952c0,0 0,0 0,0c0,-0.522 0.429,-0.952 0.951,-0.952c0.009,0 0.018,0 0.028,0.001Z"/><path id="logo-teeth" d="M29.647,16.002c0,7.49 -6.163,13.653 -13.654,13.653c-7.49,0 -13.654,-6.163 -13.654,-13.653c0,-7.491 6.164,-13.654 13.654,-13.654c7.491,0 13.654,6.163 13.654,13.654Zm-0.257,-1.319l2.13,1.319l-2.13,1.318l1.83,1.71l-2.344,0.878l1.463,2.035l-2.475,0.404l1.04,2.282l-2.506,-0.089l0.575,2.442l-2.441,-0.576l0.089,2.506l-2.283,-1.04l-0.403,2.475l-2.035,-1.462l-0.878,2.343l-1.71,-1.829l-1.319,2.129l-1.318,-2.129l-1.71,1.829l-0.878,-2.343l-2.035,1.462l-0.404,-2.475l-2.282,1.04l0.089,-2.506l-2.442,0.576l0.575,-2.442l-2.505,0.089l1.04,-2.282l-2.475,-0.404l1.462,-2.035l-2.343,-0.878l1.829,-1.71l-2.129,-1.318l2.129,-1.319l-1.829,-1.71l2.343,-0.878l-1.462,-2.035l2.475,-0.404l-1.04,-2.282l2.505,0.089l-0.575,-2.441l2.442,0.575l-0.089,-2.506l2.282,1.04l0.404,-2.475l2.035,1.463l0.878,-2.344l1.71,1.83l1.318,-2.13l1.319,2.13l1.71,-1.83l0.878,2.344l2.035,-1.463l0.403,2.475l2.283,-1.04l-0.089,2.506l2.441,-0.575l-0.575,2.441l2.506,-0.089l-1.04,2.282l2.475,0.404l-1.463,2.035l2.344,0.878l-1.83,1.71Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 4.2 KiB |
@@ -0,0 +1,3 @@
|
|||||||
|
(function() {var implementors = {};
|
||||||
|
implementors["ntext"] = [{"text":"impl<'format> Clone for Formatting<'format>","synthetic":false,"types":[]}];
|
||||||
|
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
(function() {var implementors = {};
|
||||||
|
implementors["ntext"] = [{"text":"impl<'format> Copy for Formatting<'format>","synthetic":false,"types":[]}];
|
||||||
|
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
(function() {var implementors = {};
|
||||||
|
implementors["ntext"] = [{"text":"impl<'format> Freeze for Formatting<'format>","synthetic":true,"types":[]}];
|
||||||
|
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
(function() {var implementors = {};
|
||||||
|
implementors["ntext"] = [{"text":"impl<'format> Send for Formatting<'format>","synthetic":true,"types":[]}];
|
||||||
|
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
(function() {var implementors = {};
|
||||||
|
implementors["ntext"] = [{"text":"impl<'format> Sync for Formatting<'format>","synthetic":true,"types":[]}];
|
||||||
|
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
(function() {var implementors = {};
|
||||||
|
implementors["ntext"] = [{"text":"impl<'format> Unpin for Formatting<'format>","synthetic":true,"types":[]}];
|
||||||
|
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
(function() {var implementors = {};
|
||||||
|
implementors["ntext"] = [{"text":"impl<'format> RefUnwindSafe for Formatting<'format>","synthetic":true,"types":[]}];
|
||||||
|
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
(function() {var implementors = {};
|
||||||
|
implementors["ntext"] = [{"text":"impl<'format> UnwindSafe for Formatting<'format>","synthetic":true,"types":[]}];
|
||||||
|
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>HTML Meta Tag</title>
|
||||||
|
<meta http-equiv = "refresh" content = "0; url = https://uttarayan21.github.io/ntext-rs/ntext/index.html" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>Redirecting to documentation</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
|
||||||
|
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
#main>h2+div,#main>h2+h3,#main>h3+div{display:block;}.loading-content{display:none;}#main>h2+div,#main>h3+div{display:block;}#main>h2+h3{display:flex;}#main .impl-items .hidden{display:block !important;}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List of all items in this crate"><meta name="keywords" content="rust, rustlang, rust-lang"><title>List of all items in this crate</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script id="default-settings"></script><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../favicon.svg">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../ntext/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><p class="location">Crate ntext</p><div class="block version"><p>Version 0.2.1</p></div><a id="all-types" href="index.html"><p>Back to index</p></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||||
|
<a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span>
|
||||||
|
</span>
|
||||||
|
<span class="in-band">List of all items</span></h1><h3 id="Structs">Structs</h3><ul class="structs docblock"><li><a href="struct.Formatting.html">Formatting</a></li></ul><h3 id="Macros">Macros</h3><ul class="macros docblock"><li><a href="macro.to_text.html">to_text</a></li></ul><h3 id="Functions">Functions</h3><ul class="functions docblock"><li><a href="fn.digit_to_text.html">digit_to_text</a></li><li><a href="fn.to_text_fmt.html">to_text_fmt</a></li></ul></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "ntext";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `digit_to_text` fn in crate `ntext`."><meta name="keywords" content="rust, rustlang, rust-lang, digit_to_text"><title>ntext::digit_to_text - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script id="default-settings"></script><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../favicon.svg">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc fn"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../ntext/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class="location"><a href="index.html">ntext</a></p><script>window.sidebarCurrent = {name: "digit_to_text", ty: "fn", relpath: ""};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||||
|
<a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span><a class="srclink" href="../src/ntext/numtext.rs.html#4-34" title="goto source code">[src]</a></span><span class="in-band">Function <a href="index.html">ntext</a>::<wbr><a class="fn" href="">digit_to_text</a></span></h1><pre class="rust fn">pub fn digit_to_text(digit: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>, capitalize: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>></pre><div class="docblock"><p>Convert digit to words in a string.</p>
|
||||||
|
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "ntext";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `to_text_fmt` fn in crate `ntext`."><meta name="keywords" content="rust, rustlang, rust-lang, to_text_fmt"><title>ntext::to_text_fmt - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script id="default-settings"></script><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../favicon.svg">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc fn"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../ntext/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class="location"><a href="index.html">ntext</a></p><script>window.sidebarCurrent = {name: "to_text_fmt", ty: "fn", relpath: ""};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||||
|
<a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span><a class="srclink" href="../src/ntext/numtext.rs.html#151-189" title="goto source code">[src]</a></span><span class="in-band">Function <a href="index.html">ntext</a>::<wbr><a class="fn" href="">to_text_fmt</a></span></h1><pre class="rust fn">pub fn to_text_fmt(number: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, fmt: &<a class="struct" href="../ntext/struct.Formatting.html" title="struct ntext::Formatting">Formatting</a><'_>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></pre><div class="docblock"><p>Convert usize to words in a string seperated by a seperator.</p>
|
||||||
|
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "ntext";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="refresh" content="0;URL=../../ntext/struct.Formatting.html">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>Redirecting to <a href="../../ntext/struct.Formatting.html">../../ntext/struct.Formatting.html</a>...</p>
|
||||||
|
<script>location.replace("../../ntext/struct.Formatting.html" + location.search + location.hash);</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `ntext` crate."><meta name="keywords" content="rust, rustlang, rust-lang, ntext"><title>ntext - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script id="default-settings"></script><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../favicon.svg">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../ntext/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><p class="location">Crate ntext</p><div class="block version"><p>Version 0.2.1</p></div><div class="sidebar-elems"><a id="all-types" href="all.html"><p>See all ntext's items</p></a><div class="block items"><ul><li><a href="#macros">Macros</a></li><li><a href="#structs">Structs</a></li><li><a href="#functions">Functions</a></li></ul></div><p class="location"></p><script>window.sidebarCurrent = {name: "ntext", ty: "mod", relpath: "../"};</script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||||
|
<a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span><a class="srclink" href="../src/ntext/lib.rs.html#1-40" title="goto source code">[src]</a></span><span class="in-band">Crate <a class="mod" href="">ntext</a></span></h1><div class="docblock"><p>Example program with default formatting</p>
|
||||||
|
|
||||||
|
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||||
|
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">ntext</span>;
|
||||||
|
<span class="kw">use</span> <span class="ident">ntext</span>::<span class="ident">to_text</span>;
|
||||||
|
<span class="kw">fn</span> <span class="ident">main</span>() {
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">to_text</span><span class="macro">!</span>(<span class="number">7123</span>),<span class="string">"Seven Thousand,One Hundred,Twenty-Three"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">to_text</span><span class="macro">!</span>(<span class="number">1000</span>),<span class="string">"One Thousand"</span>);
|
||||||
|
}</pre></div>
|
||||||
|
<p>Example program with custom formatting</p>
|
||||||
|
|
||||||
|
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||||
|
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">ntext</span>;
|
||||||
|
<span class="kw">use</span> <span class="ident">ntext</span>::{<span class="ident">Formatting</span>,<span class="ident">to_text</span>};
|
||||||
|
<span class="kw">fn</span> <span class="ident">main</span>() {
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">to_text</span><span class="macro">!</span>(<span class="number">1000</span>, <span class="kw-2">&</span><span class="ident">Formatting</span>::<span class="ident">none</span>().<span class="ident">capitalize</span>()),<span class="string">"OneThousand"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">to_text</span><span class="macro">!</span>(<span class="number">34123</span>, <span class="kw-2">&</span><span class="ident">Formatting</span>::<span class="ident">with_seperator</span>(<span class="string">"#"</span>).<span class="ident">capitalize</span>()),<span class="string">"Thirty#Four#Thousand#One#Hundred#Twenty#Three"</span>);
|
||||||
|
}</pre></div>
|
||||||
|
<p>This macro will also return an empty string on input zero<br />
|
||||||
|
You can also create the Formatting struct manually<br />
|
||||||
|
Source <a href="https://github.com/uttarayan21/ntext-rs">ntext-rs</a> </p>
|
||||||
|
</div><h2 id="macros" class="section-header"><a href="#macros">Macros</a></h2>
|
||||||
|
<table><tr class="module-item"><td><a class="macro" href="macro.to_text.html" title="ntext::to_text macro">to_text</a></td><td class="docblock-short"><p>Macro which supports both seperator and without it</p>
|
||||||
|
</td></tr></table><h2 id="structs" class="section-header"><a href="#structs">Structs</a></h2>
|
||||||
|
<table><tr class="module-item"><td><a class="struct" href="struct.Formatting.html" title="ntext::Formatting struct">Formatting</a></td><td class="docblock-short"><p>Set the formatting of the output </p>
|
||||||
|
</td></tr></table><h2 id="functions" class="section-header"><a href="#functions">Functions</a></h2>
|
||||||
|
<table><tr class="module-item"><td><a class="fn" href="fn.digit_to_text.html" title="ntext::digit_to_text fn">digit_to_text</a></td><td class="docblock-short"><p>Convert digit to words in a string.</p>
|
||||||
|
</td></tr><tr class="module-item"><td><a class="fn" href="fn.to_text_fmt.html" title="ntext::to_text_fmt fn">to_text_fmt</a></td><td class="docblock-short"><p>Convert usize to words in a string seperated by a seperator.</p>
|
||||||
|
</td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "ntext";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="refresh" content="0;URL=macro.to_text.html">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>Redirecting to <a href="macro.to_text.html">macro.to_text.html</a>...</p>
|
||||||
|
<script>location.replace("macro.to_text.html" + location.search + location.hash);</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `to_text` macro in crate `ntext`."><meta name="keywords" content="rust, rustlang, rust-lang, to_text"><title>ntext::to_text - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script id="default-settings"></script><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../favicon.svg">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc macro"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../ntext/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class="location"><a href="index.html">ntext</a></p><script>window.sidebarCurrent = {name: "to_text", ty: "macro", relpath: ""};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||||
|
<a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span><a class="srclink" href="../src/ntext/lib.rs.html#33-40" title="goto source code">[src]</a></span><span class="in-band">Macro <a href="index.html">ntext</a>::<wbr><a class="macro" href="">to_text</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><div class="example-wrap"><pre class="rust macro">
|
||||||
|
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">to_text</span> {
|
||||||
|
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">number</span>:<span class="ident">expr</span>) <span class="op">=</span><span class="op">></span> { ... };
|
||||||
|
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">number</span>:<span class="ident">expr</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">formatting</span>:<span class="ident">expr</span>) <span class="op">=</span><span class="op">></span> { ... };
|
||||||
|
}</pre></div>
|
||||||
|
</div><div class="docblock"><p>Macro which supports both seperator and without it</p>
|
||||||
|
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "ntext";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="refresh" content="0;URL=../../ntext/fn.digit_to_text.html">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>Redirecting to <a href="../../ntext/fn.digit_to_text.html">../../ntext/fn.digit_to_text.html</a>...</p>
|
||||||
|
<script>location.replace("../../ntext/fn.digit_to_text.html" + location.search + location.hash);</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="refresh" content="0;URL=../../ntext/fn.to_text_fmt.html">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>Redirecting to <a href="../../ntext/fn.to_text_fmt.html">../../ntext/fn.to_text_fmt.html</a>...</p>
|
||||||
|
<script>location.replace("../../ntext/fn.to_text_fmt.html" + location.search + location.hash);</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
initSidebarItems({"fn":[["digit_to_text","Convert digit to words in a string."],["to_text_fmt","Convert usize to words in a string seperated by a seperator."]],"macro":[["to_text","Macro which supports both seperator and without it"]],"struct":[["Formatting","Set the formatting of the output "]]});
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `Formatting` struct in crate `ntext`."><meta name="keywords" content="rust, rustlang, rust-lang, Formatting"><title>ntext::Formatting - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script id="default-settings"></script><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../favicon.svg">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../ntext/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><p class="location">Struct Formatting</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#fields">Fields</a><div class="sidebar-links"><a href="#structfield.capitalize">capitalize</a><a href="#structfield.digit_seperator">digit_seperator</a><a href="#structfield.place_seperator">place_seperator</a><a href="#structfield.tens_seperator">tens_seperator</a></div><a class="sidebar-title" href="#implementations">Methods</a><div class="sidebar-links"><a href="#method.capitalize">capitalize</a><a href="#method.decapitalize">decapitalize</a><a href="#method.default">default</a><a href="#method.none">none</a><a href="#method.with_seperator">with_seperator</a></div><a class="sidebar-title" href="#trait-implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-Clone">Clone</a><a href="#impl-Copy">Copy</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><a class="sidebar-title" href="#blanket-implementations">Blanket Implementations</a><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow<T></a><a href="#impl-BorrowMut%3CT%3E">BorrowMut<T></a><a href="#impl-From%3CT%3E">From<T></a><a href="#impl-Into%3CU%3E">Into<U></a><a href="#impl-ToOwned">ToOwned</a><a href="#impl-TryFrom%3CU%3E">TryFrom<U></a><a href="#impl-TryInto%3CU%3E">TryInto<U></a></div></div><p class="location"><a href="index.html">ntext</a></p><script>window.sidebarCurrent = {name: "Formatting", ty: "struct", relpath: ""};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||||
|
<a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span><a class="srclink" href="../src/ntext/formatting.rs.html#3-12" title="goto source code">[src]</a></span><span class="in-band">Struct <a href="index.html">ntext</a>::<wbr><a class="struct" href="">Formatting</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class="rust struct">pub struct Formatting<'format> {
|
||||||
|
pub capitalize: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
|
||||||
|
pub digit_seperator: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&'format <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>>,
|
||||||
|
pub place_seperator: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&'format <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>>,
|
||||||
|
pub tens_seperator: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&'format <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>>,
|
||||||
|
}</pre></div><div class="docblock"><p>Set the formatting of the output </p>
|
||||||
|
</div><h2 id="fields" class="fields small-section-header">
|
||||||
|
Fields<a href="#fields" class="anchor"></a></h2><span id="structfield.capitalize" class="structfield small-section-header"><a href="#structfield.capitalize" class="anchor field"></a><code>capitalize: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>capitalize the start of the word.</p>
|
||||||
|
</div><span id="structfield.digit_seperator" class="structfield small-section-header"><a href="#structfield.digit_seperator" class="anchor field"></a><code>digit_seperator: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&'format <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>></code></span><div class="docblock"><p>Set the seperator in between digits like "threehundred,twentytwo".</p>
|
||||||
|
</div><span id="structfield.place_seperator" class="structfield small-section-header"><a href="#structfield.place_seperator" class="anchor field"></a><code>place_seperator: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&'format <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>></code></span><div class="docblock"><p>Set the seperator in between words like "three/hundred".</p>
|
||||||
|
</div><span id="structfield.tens_seperator" class="structfield small-section-header"><a href="#structfield.tens_seperator" class="anchor field"></a><code>tens_seperator: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&'format <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>></code></span><div class="docblock"><p>Set the seperator between tens place digits like "twenty-two".</p>
|
||||||
|
</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><h3 id="impl" class="impl"><code class="in-band">impl<'format> <a class="struct" href="../ntext/struct.Formatting.html" title="struct ntext::Formatting">Formatting</a><'format></code><a href="#impl" class="anchor"></a><a class="srclink" href="../src/ntext/formatting.rs.html#14-62" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.default" class="method"><code>pub fn <a href="#method.default" class="fnname">default</a>() -> Self</code><a class="srclink" href="../src/ntext/formatting.rs.html#16-23" title="goto source code">[src]</a></h4><div class="docblock"><p>Get the default formatting.</p>
|
||||||
|
</div><h4 id="method.none" class="method"><code>pub fn <a href="#method.none" class="fnname">none</a>() -> Self</code><a class="srclink" href="../src/ntext/formatting.rs.html#25-32" title="goto source code">[src]</a></h4><div class="docblock"><p>No formatting at all</p>
|
||||||
|
</div><h4 id="method.with_seperator" class="method"><code>pub fn <a href="#method.with_seperator" class="fnname">with_seperator</a>(seperator: &'format <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> Self</code><a class="srclink" href="../src/ntext/formatting.rs.html#34-41" title="goto source code">[src]</a></h4><div class="docblock"><p>With same formatting for all seperators</p>
|
||||||
|
</div><h4 id="method.capitalize" class="method"><code>pub fn <a href="#method.capitalize" class="fnname">capitalize</a>(&mut self) -> Self</code><a class="srclink" href="../src/ntext/formatting.rs.html#43-51" title="goto source code">[src]</a></h4><div class="docblock"><p>Capitalize the formatting</p>
|
||||||
|
</div><h4 id="method.decapitalize" class="method"><code>pub fn <a href="#method.decapitalize" class="fnname">decapitalize</a>(&mut self) -> Self</code><a class="srclink" href="../src/ntext/formatting.rs.html#53-61" title="goto source code">[src]</a></h4><div class="docblock"><p>Lower case the formatting struct</p>
|
||||||
|
</div></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><h3 id="impl-Clone" class="impl"><code class="in-band">impl<'format> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="../ntext/struct.Formatting.html" title="struct ntext::Formatting">Formatting</a><'format></code><a href="#impl-Clone" class="anchor"></a><a class="srclink" href="../src/ntext/formatting.rs.html#2" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.clone" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fnname">clone</a>(&self) -> <a class="struct" href="../ntext/struct.Formatting.html" title="struct ntext::Formatting">Formatting</a><'format></code><a class="srclink" href="../src/ntext/formatting.rs.html#2" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p>
|
||||||
|
</div><h4 id="method.clone_from" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fnname">clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</code><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#128-130" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></p>
|
||||||
|
</div></div><h3 id="impl-Copy" class="impl"><code class="in-band">impl<'format> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="struct" href="../ntext/struct.Formatting.html" title="struct ntext::Formatting">Formatting</a><'format></code><a href="#impl-Copy" class="anchor"></a><a class="srclink" href="../src/ntext/formatting.rs.html#2" title="goto source code">[src]</a></h3><div class="impl-items"></div></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><h3 id="impl-RefUnwindSafe" class="impl"><code class="in-band">impl<'format> <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="../ntext/struct.Formatting.html" title="struct ntext::Formatting">Formatting</a><'format></code><a href="#impl-RefUnwindSafe" class="anchor"></a><a class="srclink" href="../src/ntext/lib.rs.html#1" title="goto source code">[src]</a></h3><div class="impl-items"></div><h3 id="impl-Send" class="impl"><code class="in-band">impl<'format> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="../ntext/struct.Formatting.html" title="struct ntext::Formatting">Formatting</a><'format></code><a href="#impl-Send" class="anchor"></a><a class="srclink" href="../src/ntext/lib.rs.html#1" title="goto source code">[src]</a></h3><div class="impl-items"></div><h3 id="impl-Sync" class="impl"><code class="in-band">impl<'format> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="../ntext/struct.Formatting.html" title="struct ntext::Formatting">Formatting</a><'format></code><a href="#impl-Sync" class="anchor"></a><a class="srclink" href="../src/ntext/lib.rs.html#1" title="goto source code">[src]</a></h3><div class="impl-items"></div><h3 id="impl-Unpin" class="impl"><code class="in-band">impl<'format> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="../ntext/struct.Formatting.html" title="struct ntext::Formatting">Formatting</a><'format></code><a href="#impl-Unpin" class="anchor"></a><a class="srclink" href="../src/ntext/lib.rs.html#1" title="goto source code">[src]</a></h3><div class="impl-items"></div><h3 id="impl-UnwindSafe" class="impl"><code class="in-band">impl<'format> <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="struct" href="../ntext/struct.Formatting.html" title="struct ntext::Formatting">Formatting</a><'format></code><a href="#impl-UnwindSafe" class="anchor"></a><a class="srclink" href="../src/ntext/lib.rs.html#1" title="goto source code">[src]</a></h3><div class="impl-items"></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><h3 id="impl-Any" class="impl"><code class="in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></code><a href="#impl-Any" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#108-112" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.type_id" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#109-111" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
|
||||||
|
</div></div><h3 id="impl-Borrow%3CT%3E" class="impl"><code class="in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T <span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></code><a href="#impl-Borrow%3CT%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210-214" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.borrow" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211-213" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
|
||||||
|
</div></div><h3 id="impl-BorrowMut%3CT%3E" class="impl"><code class="in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T <span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></code><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217-221" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.borrow_mut" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218-220" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
|
||||||
|
</div></div><h3 id="impl-From%3CT%3E" class="impl"><code class="in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</code><a href="#impl-From%3CT%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#552-556" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.from" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: T) -> T</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#553-555" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
|
||||||
|
</div></div><h3 id="impl-Into%3CU%3E" class="impl"><code class="in-band">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T <span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>, </span></code><a href="#impl-Into%3CU%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#541-548" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.into" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fnname">into</a>(self) -> U</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#545-547" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
|
||||||
|
</div></div><h3 id="impl-ToOwned" class="impl"><code class="in-band">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, </span></code><a href="#impl-ToOwned" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#80-92" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Owned" class="type"><code>type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="type">Owned</a> = T</code></h4><div class='docblock'><p>The resulting type after obtaining ownership.</p>
|
||||||
|
</div><h4 id="method.to_owned" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fnname">to_owned</a>(&self) -> T</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#85-87" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></p>
|
||||||
|
</div><h4 id="method.clone_into" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fnname">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#89-91" title="goto source code">[src]</a></h4><div class="item-info hidden"><div class="stab unstable"><details><summary><span class="emoji">🔬</span> This is a nightly-only experimental API. (<code>toowned_clone_into</code>)</summary><p>recently added</p>
|
||||||
|
</details></div></div><div class='docblock hidden'><p>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></p>
|
||||||
|
</div></div><h3 id="impl-TryFrom%3CU%3E" class="impl"><code class="in-band">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T <span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>, </span></code><a href="#impl-TryFrom%3CU%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#589-598" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Error" class="type"><code>type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="type">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
|
||||||
|
</div><h4 id="method.try_from" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fnname">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#595-597" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
|
||||||
|
</div></div><h3 id="impl-TryInto%3CU%3E" class="impl"><code class="in-band">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T <span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>, </span></code><a href="#impl-TryInto%3CU%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#575-584" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Error-1" class="type"><code>type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="type">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
|
||||||
|
</div><h4 id="method.try_into" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fnname">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#581-583" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
|
||||||
|
</div></div></div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "ntext";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
||||||
|
After Width: | Height: | Size: 5.6 KiB |
@@ -0,0 +1,4 @@
|
|||||||
|
var searchIndex = JSON.parse('{\
|
||||||
|
"ntext":{"doc":"Example program with default formatting","i":[[3,"Formatting","ntext","Set the formatting of the output ",null,null],[12,"capitalize","","capitalize the start of the word.",0,null],[12,"digit_seperator","","Set the seperator in between digits like …",0,null],[12,"place_seperator","","Set the seperator in between words like \\\"three/hundred\\\".",0,null],[12,"tens_seperator","","Set the seperator between tens place digits like …",0,null],[5,"digit_to_text","","Convert digit to words in a string.",null,[[],[["option",4],["string",3]]]],[5,"to_text_fmt","","Convert usize to words in a string seperated by a …",null,[[["formatting",3]],["string",3]]],[14,"to_text","","Macro which supports both seperator and without it",null,null],[11,"from","","",0,[[]]],[11,"into","","",0,[[]]],[11,"to_owned","","",0,[[]]],[11,"clone_into","","",0,[[]]],[11,"borrow","","",0,[[]]],[11,"borrow_mut","","",0,[[]]],[11,"try_from","","",0,[[],["result",4]]],[11,"try_into","","",0,[[],["result",4]]],[11,"type_id","","",0,[[],["typeid",3]]],[11,"clone","","",0,[[],["formatting",3]]],[11,"default","","Get the default formatting.",0,[[]]],[11,"none","","No formatting at all",0,[[]]],[11,"with_seperator","","With same formatting for all seperators",0,[[]]],[11,"capitalize","","Capitalize the formatting",0,[[]]],[11,"decapitalize","","Lower case the formatting struct",0,[[]]]],"p":[[3,"Formatting"]]}\
|
||||||
|
}');
|
||||||
|
addSearchOptions(searchIndex);initSearch(searchIndex);
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
.setting-line{padding:5px;position:relative;}.setting-line>div{display:inline-block;vertical-align:top;font-size:17px;padding-top:2px;}.setting-line>.title{font-size:19px;width:100%;max-width:none;border-bottom:1px solid;}.toggle{position:relative;display:inline-block;width:45px;height:27px;margin-right:20px;}.toggle input{opacity:0;position:absolute;}.select-wrapper{float:right;position:relative;height:27px;min-width:25%;}.select-wrapper select{appearance:none;-moz-appearance:none;-webkit-appearance:none;background:none;border:2px solid #ccc;padding-right:28px;width:100%;}.select-wrapper img{pointer-events:none;position:absolute;right:0;bottom:0;background:#ccc;height:100%;width:28px;padding:0px 4px;}.select-wrapper select option{color:initial;}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.3s;transition:.3s;}.slider:before{position:absolute;content:"";height:19px;width:19px;left:4px;bottom:4px;background-color:white;-webkit-transition:.3s;transition:.3s;}input:checked+.slider{background-color:#2196F3;}input:focus+.slider{box-shadow:0 0 0 2px #0a84ff,0 0 0 6px rgba(10,132,255,0.3);}input:checked+.slider:before{-webkit-transform:translateX(19px);-ms-transform:translateX(19px);transform:translateX(19px);}.setting-line>.sub-settings{padding-left:42px;width:100%;display:block;}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="stylesheet" type="text/css" href="./normalize.css"><link rel="stylesheet" type="text/css" href="./rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="./light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="./dark.css" disabled ><link rel="stylesheet" type="text/css" href="./ayu.css" disabled ><link rel="stylesheet" type="text/css" href="./settings.css" ><script id="default-settings"></script><script src="./storage.js"></script><noscript><link rel="stylesheet" href="./noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="./favicon.svg">
|
||||||
|
<link rel="alternate icon" type="image/png" href="./favicon-16x16.png">
|
||||||
|
<link rel="alternate icon" type="image/png" href="./favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("./down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='./ntext/index.html'><div class='logo-container rust-logo'><img src='./rust-logo.png' alt='logo'></div></a><p class="location">Settings</p><div class="sidebar-elems"></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="./brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="./theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||||
|
<a id="settings-menu" href="./settings.html"><img src="./wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Rustdoc settings</span></h1><div class="settings"><div class="setting-line"><div class="title">Theme preferences</div><div class="sub-settings"><div class="setting-line"><label class="toggle"><input type="checkbox" id="use-system-theme" checked><span class="slider"></span></label><div>Use system theme</div></div><div class="setting-line"><div>Preferred dark theme</div><label class="select-wrapper"><select id="preferred-dark-theme" autocomplete="off"><option value="light" >light</option><option value="dark" selected>dark</option><option value="ayu" >ayu</option></select><img src="./down-arrow.svg" alt="Select item"></label></div><div class="setting-line"><div>Preferred light theme</div><label class="select-wrapper"><select id="preferred-light-theme" autocomplete="off"><option value="light" selected>light</option><option value="dark" >dark</option><option value="ayu" >ayu</option></select><img src="./down-arrow.svg" alt="Select item"></label></div></div>
|
||||||
|
</div><div class="setting-line"><div class="title">Auto-hide item declarations</div><div class="sub-settings"><div class="setting-line"><label class="toggle"><input type="checkbox" id="auto-hide-struct" checked><span class="slider"></span></label><div>Auto-hide structs declaration</div></div><div class="setting-line"><label class="toggle"><input type="checkbox" id="auto-hide-enum" ><span class="slider"></span></label><div>Auto-hide enums declaration</div></div><div class="setting-line"><label class="toggle"><input type="checkbox" id="auto-hide-union" checked><span class="slider"></span></label><div>Auto-hide unions declaration</div></div><div class="setting-line"><label class="toggle"><input type="checkbox" id="auto-hide-trait" checked><span class="slider"></span></label><div>Auto-hide traits declaration</div></div><div class="setting-line"><label class="toggle"><input type="checkbox" id="auto-hide-macro" ><span class="slider"></span></label><div>Auto-hide macros declaration</div></div></div>
|
||||||
|
</div><div class="setting-line"><label class="toggle"><input type="checkbox" id="auto-hide-attributes" checked><span class="slider"></span></label><div>Auto-hide item attributes.</div></div><div class="setting-line"><label class="toggle"><input type="checkbox" id="auto-hide-method-docs" ><span class="slider"></span></label><div>Auto-hide item methods' documentation</div></div><div class="setting-line"><label class="toggle"><input type="checkbox" id="auto-hide-trait-implementations" checked><span class="slider"></span></label><div>Auto-hide trait implementation documentation</div></div><div class="setting-line"><label class="toggle"><input type="checkbox" id="auto-collapse-implementors" checked><span class="slider"></span></label><div>Auto-hide implementors of a trait</div></div><div class="setting-line"><label class="toggle"><input type="checkbox" id="go-to-only-result" ><span class="slider"></span></label><div>Directly go to item in search if there is only one result</div></div><div class="setting-line"><label class="toggle"><input type="checkbox" id="line-numbers" ><span class="slider"></span></label><div>Show line numbers on code examples</div></div><div class="setting-line"><label class="toggle"><input type="checkbox" id="disable-shortcuts" ><span class="slider"></span></label><div>Disable keyboard shortcuts</div></div></div><script src="./settings.js"></script></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "./";window.currentCrate = "ntext";</script><script src="./main.js"></script><script defer src="./search-index.js"></script></body></html>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
(function(){function changeSetting(settingName,value){updateLocalStorage("rustdoc-"+settingName,value);switch(settingName){case"preferred-dark-theme":case"preferred-light-theme":case"use-system-theme":updateSystemTheme();break}}function handleKey(ev){if(ev.ctrlKey||ev.altKey||ev.metaKey){return}switch(getVirtualKey(ev)){case"Enter":case"Return":case"Space":ev.target.checked=!ev.target.checked;ev.preventDefault();break}}function setEvents(){onEachLazy(document.getElementsByClassName("slider"),function(elem){var toggle=elem.previousElementSibling;var settingId=toggle.id;var settingValue=getSettingValue(settingId);if(settingValue!==null){toggle.checked=settingValue==="true"}toggle.onchange=function(){changeSetting(this.id,this.checked)};toggle.onkeyup=handleKey;toggle.onkeyrelease=handleKey});onEachLazy(document.getElementsByClassName("select-wrapper"),function(elem){var select=elem.getElementsByTagName("select")[0];var settingId=select.id;var settingValue=getSettingValue(settingId);if(settingValue!==null){select.value=settingValue}select.onchange=function(){changeSetting(this.id,this.value)}})}window.addEventListener("DOMContentLoaded",setEvents)})()
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
var N = null;var sourcesIndex = {};
|
||||||
|
sourcesIndex["ntext"] = {"name":"","files":["formatting.rs","lib.rs","numtext.rs","test.rs"]};
|
||||||
|
createSourceSidebar();
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
function getCurrentFilePath(){var parts=window.location.pathname.split("/");var rootPathParts=window.rootPath.split("/");for(var i=0;i<rootPathParts.length;++i){if(rootPathParts[i]===".."){parts.pop()}}var file=window.location.pathname.substring(parts.join("/").length);if(file.startsWith("/")){file=file.substring(1)}return file.substring(0,file.length-5)}function createDirEntry(elem,parent,fullPath,currentFile,hasFoundFile){var name=document.createElement("div");name.className="name";fullPath+=elem["name"]+"/";name.onclick=function(){if(hasClass(this,"expand")){removeClass(this,"expand")}else{addClass(this,"expand")}};name.innerText=elem["name"];var children=document.createElement("div");children.className="children";var folders=document.createElement("div");folders.className="folders";if(elem.dirs){for(var i=0;i<elem.dirs.length;++i){if(createDirEntry(elem.dirs[i],folders,fullPath,currentFile,hasFoundFile)===true){addClass(name,"expand");hasFoundFile=true}}}children.appendChild(folders);var files=document.createElement("div");files.className="files";if(elem.files){for(i=0;i<elem.files.length;++i){var file=document.createElement("a");file.innerText=elem.files[i];file.href=window.rootPath+"src/"+fullPath+elem.files[i]+".html";if(hasFoundFile===false&¤tFile===fullPath+elem.files[i]){file.className="selected";addClass(name,"expand");hasFoundFile=true}files.appendChild(file)}}search.fullPath=fullPath;children.appendChild(files);parent.appendChild(name);parent.appendChild(children);return hasFoundFile===true&¤tFile.startsWith(fullPath)}function toggleSidebar(){var sidebar=document.getElementById("source-sidebar");var child=this.children[0].children[0];if(child.innerText===">"){sidebar.style.left="";this.style.left="";child.innerText="<";updateLocalStorage("rustdoc-source-sidebar-show","true")}else{sidebar.style.left="-300px";this.style.left="0";child.innerText=">";updateLocalStorage("rustdoc-source-sidebar-show","false")}}function createSidebarToggle(){var sidebarToggle=document.createElement("div");sidebarToggle.id="sidebar-toggle";sidebarToggle.onclick=toggleSidebar;var inner1=document.createElement("div");inner1.style.position="relative";var inner2=document.createElement("div");inner2.style.paddingTop="3px";if(getCurrentValue("rustdoc-source-sidebar-show")==="true"){inner2.innerText="<"}else{inner2.innerText=">";sidebarToggle.style.left="0"}inner1.appendChild(inner2);sidebarToggle.appendChild(inner1);return sidebarToggle}function createSourceSidebar(){if(window.rootPath.endsWith("/")===false){window.rootPath+="/"}var main=document.getElementById("main");var sidebarToggle=createSidebarToggle();main.insertBefore(sidebarToggle,main.firstChild);var sidebar=document.createElement("div");sidebar.id="source-sidebar";if(getCurrentValue("rustdoc-source-sidebar-show")!=="true"){sidebar.style.left="-300px"}var currentFile=getCurrentFilePath();var hasFoundFile=false;var title=document.createElement("div");title.className="title";title.innerText="Files";sidebar.appendChild(title);Object.keys(sourcesIndex).forEach(function(key){sourcesIndex[key].name=key;hasFoundFile=createDirEntry(sourcesIndex[key],sidebar,"",currentFile,hasFoundFile)});main.insertBefore(sidebar,main.firstChild);var selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}}
|
||||||
@@ -0,0 +1,130 @@
|
|||||||
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source of the Rust file `src/formatting.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>formatting.rs - source</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc source"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../../ntext/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||||
|
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><pre class="line-numbers"><span id="1"> 1</span>
|
||||||
|
<span id="2"> 2</span>
|
||||||
|
<span id="3"> 3</span>
|
||||||
|
<span id="4"> 4</span>
|
||||||
|
<span id="5"> 5</span>
|
||||||
|
<span id="6"> 6</span>
|
||||||
|
<span id="7"> 7</span>
|
||||||
|
<span id="8"> 8</span>
|
||||||
|
<span id="9"> 9</span>
|
||||||
|
<span id="10">10</span>
|
||||||
|
<span id="11">11</span>
|
||||||
|
<span id="12">12</span>
|
||||||
|
<span id="13">13</span>
|
||||||
|
<span id="14">14</span>
|
||||||
|
<span id="15">15</span>
|
||||||
|
<span id="16">16</span>
|
||||||
|
<span id="17">17</span>
|
||||||
|
<span id="18">18</span>
|
||||||
|
<span id="19">19</span>
|
||||||
|
<span id="20">20</span>
|
||||||
|
<span id="21">21</span>
|
||||||
|
<span id="22">22</span>
|
||||||
|
<span id="23">23</span>
|
||||||
|
<span id="24">24</span>
|
||||||
|
<span id="25">25</span>
|
||||||
|
<span id="26">26</span>
|
||||||
|
<span id="27">27</span>
|
||||||
|
<span id="28">28</span>
|
||||||
|
<span id="29">29</span>
|
||||||
|
<span id="30">30</span>
|
||||||
|
<span id="31">31</span>
|
||||||
|
<span id="32">32</span>
|
||||||
|
<span id="33">33</span>
|
||||||
|
<span id="34">34</span>
|
||||||
|
<span id="35">35</span>
|
||||||
|
<span id="36">36</span>
|
||||||
|
<span id="37">37</span>
|
||||||
|
<span id="38">38</span>
|
||||||
|
<span id="39">39</span>
|
||||||
|
<span id="40">40</span>
|
||||||
|
<span id="41">41</span>
|
||||||
|
<span id="42">42</span>
|
||||||
|
<span id="43">43</span>
|
||||||
|
<span id="44">44</span>
|
||||||
|
<span id="45">45</span>
|
||||||
|
<span id="46">46</span>
|
||||||
|
<span id="47">47</span>
|
||||||
|
<span id="48">48</span>
|
||||||
|
<span id="49">49</span>
|
||||||
|
<span id="50">50</span>
|
||||||
|
<span id="51">51</span>
|
||||||
|
<span id="52">52</span>
|
||||||
|
<span id="53">53</span>
|
||||||
|
<span id="54">54</span>
|
||||||
|
<span id="55">55</span>
|
||||||
|
<span id="56">56</span>
|
||||||
|
<span id="57">57</span>
|
||||||
|
<span id="58">58</span>
|
||||||
|
<span id="59">59</span>
|
||||||
|
<span id="60">60</span>
|
||||||
|
<span id="61">61</span>
|
||||||
|
<span id="62">62</span>
|
||||||
|
</pre><div class="example-wrap"><pre class="rust ">
|
||||||
|
<span class="doccomment">/// Set the formatting of the output </span>
|
||||||
|
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>)]</span>
|
||||||
|
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Formatting</span><span class="op"><</span><span class="lifetime">'format</span><span class="op">></span> {
|
||||||
|
<span class="doccomment">/// capitalize the start of the word.</span>
|
||||||
|
<span class="kw">pub</span> <span class="ident">capitalize</span>: <span class="ident">bool</span>,
|
||||||
|
<span class="doccomment">/// Set the seperator in between digits like "threehundred,twentytwo".</span>
|
||||||
|
<span class="kw">pub</span> <span class="ident">digit_seperator</span>: <span class="prelude-ty">Option</span><span class="op"><</span><span class="kw-2">&</span><span class="lifetime">'format</span> <span class="ident">str</span><span class="op">></span>,
|
||||||
|
<span class="doccomment">/// Set the seperator in between words like "three/hundred".</span>
|
||||||
|
<span class="kw">pub</span> <span class="ident">place_seperator</span>: <span class="prelude-ty">Option</span><span class="op"><</span><span class="kw-2">&</span><span class="lifetime">'format</span> <span class="ident">str</span><span class="op">></span>,
|
||||||
|
<span class="doccomment">/// Set the seperator between tens place digits like "twenty-two".</span>
|
||||||
|
<span class="kw">pub</span> <span class="ident">tens_seperator</span>: <span class="prelude-ty">Option</span><span class="op"><</span><span class="kw-2">&</span><span class="lifetime">'format</span> <span class="ident">str</span><span class="op">></span>,
|
||||||
|
}
|
||||||
|
|
||||||
|
<span class="kw">impl</span><span class="op"><</span><span class="lifetime">'format</span><span class="op">></span> <span class="ident">Formatting</span><span class="op"><</span><span class="lifetime">'format</span><span class="op">></span> {
|
||||||
|
<span class="doccomment">/// Get the default formatting.</span>
|
||||||
|
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">default</span>() <span class="op">-</span><span class="op">></span> <span class="self">Self</span> {
|
||||||
|
<span class="self">Self</span> {
|
||||||
|
<span class="ident">capitalize</span>: <span class="bool-val">true</span>,
|
||||||
|
<span class="ident">digit_seperator</span>: <span class="prelude-val">Some</span>(<span class="string">","</span>),
|
||||||
|
<span class="ident">place_seperator</span>: <span class="prelude-val">Some</span>(<span class="string">" "</span>),
|
||||||
|
<span class="ident">tens_seperator</span>: <span class="prelude-val">Some</span>(<span class="string">"-"</span>),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<span class="doccomment">/// No formatting at all</span>
|
||||||
|
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">none</span>() <span class="op">-</span><span class="op">></span> <span class="self">Self</span> {
|
||||||
|
<span class="self">Self</span> {
|
||||||
|
<span class="ident">capitalize</span>: <span class="bool-val">false</span>,
|
||||||
|
<span class="ident">digit_seperator</span>: <span class="prelude-val">None</span>,
|
||||||
|
<span class="ident">place_seperator</span>: <span class="prelude-val">None</span>,
|
||||||
|
<span class="ident">tens_seperator</span>: <span class="prelude-val">None</span>,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<span class="doccomment">/// With same formatting for all seperators</span>
|
||||||
|
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">with_seperator</span>(<span class="ident">seperator</span>: <span class="kw-2">&</span><span class="lifetime">'format</span> <span class="ident">str</span>) <span class="op">-</span><span class="op">></span> <span class="self">Self</span> {
|
||||||
|
<span class="self">Self</span> {
|
||||||
|
<span class="ident">capitalize</span>: <span class="bool-val">false</span>,
|
||||||
|
<span class="ident">digit_seperator</span>: <span class="prelude-val">Some</span>(<span class="ident">seperator</span>),
|
||||||
|
<span class="ident">place_seperator</span>: <span class="prelude-val">Some</span>(<span class="ident">seperator</span>),
|
||||||
|
<span class="ident">tens_seperator</span>: <span class="prelude-val">Some</span>(<span class="ident">seperator</span>),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<span class="doccomment">/// Capitalize the formatting</span>
|
||||||
|
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">capitalize</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-</span><span class="op">></span> <span class="self">Self</span> {
|
||||||
|
<span class="self">self</span>.<span class="ident">capitalize</span> <span class="op">=</span> <span class="bool-val">true</span>;
|
||||||
|
<span class="self">Self</span> {
|
||||||
|
<span class="ident">capitalize</span>: <span class="self">self</span>.<span class="ident">capitalize</span>,
|
||||||
|
<span class="ident">digit_seperator</span>: <span class="self">self</span>.<span class="ident">digit_seperator</span>,
|
||||||
|
<span class="ident">place_seperator</span>: <span class="self">self</span>.<span class="ident">place_seperator</span>,
|
||||||
|
<span class="ident">tens_seperator</span>: <span class="self">self</span>.<span class="ident">tens_seperator</span>,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<span class="doccomment">/// Lower case the formatting struct</span>
|
||||||
|
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">decapitalize</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-</span><span class="op">></span> <span class="self">Self</span> {
|
||||||
|
<span class="self">self</span>.<span class="ident">capitalize</span> <span class="op">=</span> <span class="bool-val">false</span>;
|
||||||
|
<span class="self">Self</span> {
|
||||||
|
<span class="ident">capitalize</span>: <span class="self">self</span>.<span class="ident">capitalize</span>,
|
||||||
|
<span class="ident">digit_seperator</span>: <span class="self">self</span>.<span class="ident">digit_seperator</span>,
|
||||||
|
<span class="ident">place_seperator</span>: <span class="self">self</span>.<span class="ident">place_seperator</span>,
|
||||||
|
<span class="ident">tens_seperator</span>: <span class="self">self</span>.<span class="ident">tens_seperator</span>,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</pre></div>
|
||||||
|
</section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "ntext";</script><script src="../../main.js"></script><script src="../../source-script.js"></script><script src="../../source-files.js"></script><script defer src="../../search-index.js"></script></body></html>
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source of the Rust file `src/lib.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>lib.rs - source</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc source"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../../ntext/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||||
|
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><pre class="line-numbers"><span id="1"> 1</span>
|
||||||
|
<span id="2"> 2</span>
|
||||||
|
<span id="3"> 3</span>
|
||||||
|
<span id="4"> 4</span>
|
||||||
|
<span id="5"> 5</span>
|
||||||
|
<span id="6"> 6</span>
|
||||||
|
<span id="7"> 7</span>
|
||||||
|
<span id="8"> 8</span>
|
||||||
|
<span id="9"> 9</span>
|
||||||
|
<span id="10">10</span>
|
||||||
|
<span id="11">11</span>
|
||||||
|
<span id="12">12</span>
|
||||||
|
<span id="13">13</span>
|
||||||
|
<span id="14">14</span>
|
||||||
|
<span id="15">15</span>
|
||||||
|
<span id="16">16</span>
|
||||||
|
<span id="17">17</span>
|
||||||
|
<span id="18">18</span>
|
||||||
|
<span id="19">19</span>
|
||||||
|
<span id="20">20</span>
|
||||||
|
<span id="21">21</span>
|
||||||
|
<span id="22">22</span>
|
||||||
|
<span id="23">23</span>
|
||||||
|
<span id="24">24</span>
|
||||||
|
<span id="25">25</span>
|
||||||
|
<span id="26">26</span>
|
||||||
|
<span id="27">27</span>
|
||||||
|
<span id="28">28</span>
|
||||||
|
<span id="29">29</span>
|
||||||
|
<span id="30">30</span>
|
||||||
|
<span id="31">31</span>
|
||||||
|
<span id="32">32</span>
|
||||||
|
<span id="33">33</span>
|
||||||
|
<span id="34">34</span>
|
||||||
|
<span id="35">35</span>
|
||||||
|
<span id="36">36</span>
|
||||||
|
<span id="37">37</span>
|
||||||
|
<span id="38">38</span>
|
||||||
|
<span id="39">39</span>
|
||||||
|
<span id="40">40</span>
|
||||||
|
</pre><div class="example-wrap"><pre class="rust ">
|
||||||
|
<span class="doccomment">//! Example program with default formatting </span>
|
||||||
|
<span class="doccomment">//!```rust</span>
|
||||||
|
<span class="doccomment">//!extern crate ntext;</span>
|
||||||
|
<span class="doccomment">//!use ntext::to_text;</span>
|
||||||
|
<span class="doccomment">//!fn main() {</span>
|
||||||
|
<span class="doccomment">//! assert_eq!(to_text!(7123),"Seven Thousand,One Hundred,Twenty-Three");</span>
|
||||||
|
<span class="doccomment">//! assert_eq!(to_text!(1000),"One Thousand");</span>
|
||||||
|
<span class="doccomment">//!}</span>
|
||||||
|
<span class="doccomment">//!```</span>
|
||||||
|
<span class="doccomment">//! Example program with custom formatting</span>
|
||||||
|
<span class="doccomment">//!</span>
|
||||||
|
<span class="doccomment">//!```rust</span>
|
||||||
|
<span class="doccomment">//!extern crate ntext;</span>
|
||||||
|
<span class="doccomment">//!use ntext::{Formatting,to_text};</span>
|
||||||
|
<span class="doccomment">//!fn main() {</span>
|
||||||
|
<span class="doccomment">//! assert_eq!(to_text!(1000, &Formatting::none().capitalize()),"OneThousand");</span>
|
||||||
|
<span class="doccomment">//! assert_eq!(to_text!(34123, &Formatting::with_seperator("#").capitalize()),"Thirty#Four#Thousand#One#Hundred#Twenty#Three");</span>
|
||||||
|
<span class="doccomment">//!}</span>
|
||||||
|
<span class="doccomment">//!```</span>
|
||||||
|
<span class="doccomment">//! This macro will also return an empty string on input zero </span>
|
||||||
|
<span class="doccomment">//! You can also create the Formatting struct manually </span>
|
||||||
|
<span class="doccomment">//! Source [ntext-rs](https://github.com/uttarayan21/ntext-rs) </span>
|
||||||
|
|
||||||
|
<span class="kw">mod</span> <span class="ident">formatting</span>;
|
||||||
|
<span class="kw">mod</span> <span class="ident">numtext</span>;
|
||||||
|
<span class="kw">mod</span> <span class="ident">test</span>;
|
||||||
|
|
||||||
|
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">formatting</span>::<span class="ident">Formatting</span>;
|
||||||
|
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">numtext</span>::{<span class="ident">digit_to_text</span>, <span class="ident">to_text_fmt</span>};
|
||||||
|
|
||||||
|
<span class="doccomment">/// Macro which supports both seperator and without it</span>
|
||||||
|
<span class="attribute">#[<span class="ident">macro_export</span>]</span>
|
||||||
|
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">to_text</span> {
|
||||||
|
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">number</span>:<span class="ident">expr</span>) <span class="op">=</span><span class="op">></span> {
|
||||||
|
<span class="ident">ntext</span>::<span class="ident">to_text_fmt</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">number</span>, <span class="kw-2">&</span><span class="ident">ntext</span>::<span class="ident">Formatting</span>::<span class="ident">default</span>());
|
||||||
|
};
|
||||||
|
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">number</span>:<span class="ident">expr</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">formatting</span>:<span class="ident">expr</span>) <span class="op">=</span><span class="op">></span> {
|
||||||
|
<span class="ident">ntext</span>::<span class="ident">to_text_fmt</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">number</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">formatting</span>);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
</pre></div>
|
||||||
|
</section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "ntext";</script><script src="../../main.js"></script><script src="../../source-script.js"></script><script src="../../source-files.js"></script><script defer src="../../search-index.js"></script></body></html>
|
||||||
@@ -0,0 +1,384 @@
|
|||||||
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source of the Rust file `src/numtext.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>numtext.rs - source</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc source"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../../ntext/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||||
|
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><pre class="line-numbers"><span id="1"> 1</span>
|
||||||
|
<span id="2"> 2</span>
|
||||||
|
<span id="3"> 3</span>
|
||||||
|
<span id="4"> 4</span>
|
||||||
|
<span id="5"> 5</span>
|
||||||
|
<span id="6"> 6</span>
|
||||||
|
<span id="7"> 7</span>
|
||||||
|
<span id="8"> 8</span>
|
||||||
|
<span id="9"> 9</span>
|
||||||
|
<span id="10"> 10</span>
|
||||||
|
<span id="11"> 11</span>
|
||||||
|
<span id="12"> 12</span>
|
||||||
|
<span id="13"> 13</span>
|
||||||
|
<span id="14"> 14</span>
|
||||||
|
<span id="15"> 15</span>
|
||||||
|
<span id="16"> 16</span>
|
||||||
|
<span id="17"> 17</span>
|
||||||
|
<span id="18"> 18</span>
|
||||||
|
<span id="19"> 19</span>
|
||||||
|
<span id="20"> 20</span>
|
||||||
|
<span id="21"> 21</span>
|
||||||
|
<span id="22"> 22</span>
|
||||||
|
<span id="23"> 23</span>
|
||||||
|
<span id="24"> 24</span>
|
||||||
|
<span id="25"> 25</span>
|
||||||
|
<span id="26"> 26</span>
|
||||||
|
<span id="27"> 27</span>
|
||||||
|
<span id="28"> 28</span>
|
||||||
|
<span id="29"> 29</span>
|
||||||
|
<span id="30"> 30</span>
|
||||||
|
<span id="31"> 31</span>
|
||||||
|
<span id="32"> 32</span>
|
||||||
|
<span id="33"> 33</span>
|
||||||
|
<span id="34"> 34</span>
|
||||||
|
<span id="35"> 35</span>
|
||||||
|
<span id="36"> 36</span>
|
||||||
|
<span id="37"> 37</span>
|
||||||
|
<span id="38"> 38</span>
|
||||||
|
<span id="39"> 39</span>
|
||||||
|
<span id="40"> 40</span>
|
||||||
|
<span id="41"> 41</span>
|
||||||
|
<span id="42"> 42</span>
|
||||||
|
<span id="43"> 43</span>
|
||||||
|
<span id="44"> 44</span>
|
||||||
|
<span id="45"> 45</span>
|
||||||
|
<span id="46"> 46</span>
|
||||||
|
<span id="47"> 47</span>
|
||||||
|
<span id="48"> 48</span>
|
||||||
|
<span id="49"> 49</span>
|
||||||
|
<span id="50"> 50</span>
|
||||||
|
<span id="51"> 51</span>
|
||||||
|
<span id="52"> 52</span>
|
||||||
|
<span id="53"> 53</span>
|
||||||
|
<span id="54"> 54</span>
|
||||||
|
<span id="55"> 55</span>
|
||||||
|
<span id="56"> 56</span>
|
||||||
|
<span id="57"> 57</span>
|
||||||
|
<span id="58"> 58</span>
|
||||||
|
<span id="59"> 59</span>
|
||||||
|
<span id="60"> 60</span>
|
||||||
|
<span id="61"> 61</span>
|
||||||
|
<span id="62"> 62</span>
|
||||||
|
<span id="63"> 63</span>
|
||||||
|
<span id="64"> 64</span>
|
||||||
|
<span id="65"> 65</span>
|
||||||
|
<span id="66"> 66</span>
|
||||||
|
<span id="67"> 67</span>
|
||||||
|
<span id="68"> 68</span>
|
||||||
|
<span id="69"> 69</span>
|
||||||
|
<span id="70"> 70</span>
|
||||||
|
<span id="71"> 71</span>
|
||||||
|
<span id="72"> 72</span>
|
||||||
|
<span id="73"> 73</span>
|
||||||
|
<span id="74"> 74</span>
|
||||||
|
<span id="75"> 75</span>
|
||||||
|
<span id="76"> 76</span>
|
||||||
|
<span id="77"> 77</span>
|
||||||
|
<span id="78"> 78</span>
|
||||||
|
<span id="79"> 79</span>
|
||||||
|
<span id="80"> 80</span>
|
||||||
|
<span id="81"> 81</span>
|
||||||
|
<span id="82"> 82</span>
|
||||||
|
<span id="83"> 83</span>
|
||||||
|
<span id="84"> 84</span>
|
||||||
|
<span id="85"> 85</span>
|
||||||
|
<span id="86"> 86</span>
|
||||||
|
<span id="87"> 87</span>
|
||||||
|
<span id="88"> 88</span>
|
||||||
|
<span id="89"> 89</span>
|
||||||
|
<span id="90"> 90</span>
|
||||||
|
<span id="91"> 91</span>
|
||||||
|
<span id="92"> 92</span>
|
||||||
|
<span id="93"> 93</span>
|
||||||
|
<span id="94"> 94</span>
|
||||||
|
<span id="95"> 95</span>
|
||||||
|
<span id="96"> 96</span>
|
||||||
|
<span id="97"> 97</span>
|
||||||
|
<span id="98"> 98</span>
|
||||||
|
<span id="99"> 99</span>
|
||||||
|
<span id="100">100</span>
|
||||||
|
<span id="101">101</span>
|
||||||
|
<span id="102">102</span>
|
||||||
|
<span id="103">103</span>
|
||||||
|
<span id="104">104</span>
|
||||||
|
<span id="105">105</span>
|
||||||
|
<span id="106">106</span>
|
||||||
|
<span id="107">107</span>
|
||||||
|
<span id="108">108</span>
|
||||||
|
<span id="109">109</span>
|
||||||
|
<span id="110">110</span>
|
||||||
|
<span id="111">111</span>
|
||||||
|
<span id="112">112</span>
|
||||||
|
<span id="113">113</span>
|
||||||
|
<span id="114">114</span>
|
||||||
|
<span id="115">115</span>
|
||||||
|
<span id="116">116</span>
|
||||||
|
<span id="117">117</span>
|
||||||
|
<span id="118">118</span>
|
||||||
|
<span id="119">119</span>
|
||||||
|
<span id="120">120</span>
|
||||||
|
<span id="121">121</span>
|
||||||
|
<span id="122">122</span>
|
||||||
|
<span id="123">123</span>
|
||||||
|
<span id="124">124</span>
|
||||||
|
<span id="125">125</span>
|
||||||
|
<span id="126">126</span>
|
||||||
|
<span id="127">127</span>
|
||||||
|
<span id="128">128</span>
|
||||||
|
<span id="129">129</span>
|
||||||
|
<span id="130">130</span>
|
||||||
|
<span id="131">131</span>
|
||||||
|
<span id="132">132</span>
|
||||||
|
<span id="133">133</span>
|
||||||
|
<span id="134">134</span>
|
||||||
|
<span id="135">135</span>
|
||||||
|
<span id="136">136</span>
|
||||||
|
<span id="137">137</span>
|
||||||
|
<span id="138">138</span>
|
||||||
|
<span id="139">139</span>
|
||||||
|
<span id="140">140</span>
|
||||||
|
<span id="141">141</span>
|
||||||
|
<span id="142">142</span>
|
||||||
|
<span id="143">143</span>
|
||||||
|
<span id="144">144</span>
|
||||||
|
<span id="145">145</span>
|
||||||
|
<span id="146">146</span>
|
||||||
|
<span id="147">147</span>
|
||||||
|
<span id="148">148</span>
|
||||||
|
<span id="149">149</span>
|
||||||
|
<span id="150">150</span>
|
||||||
|
<span id="151">151</span>
|
||||||
|
<span id="152">152</span>
|
||||||
|
<span id="153">153</span>
|
||||||
|
<span id="154">154</span>
|
||||||
|
<span id="155">155</span>
|
||||||
|
<span id="156">156</span>
|
||||||
|
<span id="157">157</span>
|
||||||
|
<span id="158">158</span>
|
||||||
|
<span id="159">159</span>
|
||||||
|
<span id="160">160</span>
|
||||||
|
<span id="161">161</span>
|
||||||
|
<span id="162">162</span>
|
||||||
|
<span id="163">163</span>
|
||||||
|
<span id="164">164</span>
|
||||||
|
<span id="165">165</span>
|
||||||
|
<span id="166">166</span>
|
||||||
|
<span id="167">167</span>
|
||||||
|
<span id="168">168</span>
|
||||||
|
<span id="169">169</span>
|
||||||
|
<span id="170">170</span>
|
||||||
|
<span id="171">171</span>
|
||||||
|
<span id="172">172</span>
|
||||||
|
<span id="173">173</span>
|
||||||
|
<span id="174">174</span>
|
||||||
|
<span id="175">175</span>
|
||||||
|
<span id="176">176</span>
|
||||||
|
<span id="177">177</span>
|
||||||
|
<span id="178">178</span>
|
||||||
|
<span id="179">179</span>
|
||||||
|
<span id="180">180</span>
|
||||||
|
<span id="181">181</span>
|
||||||
|
<span id="182">182</span>
|
||||||
|
<span id="183">183</span>
|
||||||
|
<span id="184">184</span>
|
||||||
|
<span id="185">185</span>
|
||||||
|
<span id="186">186</span>
|
||||||
|
<span id="187">187</span>
|
||||||
|
<span id="188">188</span>
|
||||||
|
<span id="189">189</span>
|
||||||
|
</pre><div class="example-wrap"><pre class="rust ">
|
||||||
|
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">Formatting</span>;
|
||||||
|
|
||||||
|
<span class="doccomment">/// Convert digit to words in a string.</span>
|
||||||
|
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">digit_to_text</span>(<span class="ident">digit</span>: <span class="ident">u8</span>, <span class="ident">capitalize</span>: <span class="ident">bool</span>) <span class="op">-</span><span class="op">></span> <span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">String</span><span class="op">></span> {
|
||||||
|
<span class="kw">if</span> <span class="ident">capitalize</span> {
|
||||||
|
<span class="kw">match</span> <span class="ident">digit</span> {
|
||||||
|
<span class="number">0</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">""</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">1</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"One"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">2</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Two"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">3</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Three"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">4</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Four"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">5</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Five"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">6</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Six"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">7</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Seven"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">8</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Eight"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">9</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Nine"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="kw">_</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">None</span>,
|
||||||
|
}
|
||||||
|
} <span class="kw">else</span> {
|
||||||
|
<span class="kw">match</span> <span class="ident">digit</span> {
|
||||||
|
<span class="number">0</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">""</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">1</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"one"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">2</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"two"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">3</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"three"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">4</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"four"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">5</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"five"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">6</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"six"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">7</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"seven"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">8</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"eight"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">9</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"nine"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="kw">_</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">None</span>,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<span class="kw">fn</span> <span class="ident">place_value</span>(<span class="ident">number</span>: <span class="ident">u8</span>, <span class="ident">place</span>: <span class="ident">u8</span>, <span class="ident">fmt</span>: <span class="kw-2">&</span><span class="ident">Formatting</span>) <span class="op">-</span><span class="op">></span> <span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">String</span><span class="op">></span> {
|
||||||
|
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">buffer</span> <span class="op">=</span> <span class="ident">digit_to_text</span>(<span class="ident">number</span>, <span class="ident">fmt</span>.<span class="ident">capitalize</span>).<span class="ident">unwrap</span>();
|
||||||
|
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">sep</span>) <span class="op">=</span> <span class="ident">fmt</span>.<span class="ident">place_seperator</span> {
|
||||||
|
<span class="kw">if</span> <span class="ident">number</span> <span class="op">!</span><span class="op">=</span> <span class="number">0</span> <span class="op">&&</span> <span class="ident">place</span> <span class="op">!</span><span class="op">=</span> <span class="number">1</span> {
|
||||||
|
<span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="ident">sep</span>)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<span class="kw">if</span> <span class="ident">fmt</span>.<span class="ident">capitalize</span> {
|
||||||
|
<span class="kw">match</span> <span class="ident">place</span> {
|
||||||
|
<span class="number">1</span> <span class="op">=</span><span class="op">></span> (), <span class="comment">//Can happen but should return the same digit</span>
|
||||||
|
<span class="number">2</span> <span class="op">=</span><span class="op">></span> (), <span class="comment">//This should never happen as 2 is included in the tens_place_holders</span>
|
||||||
|
<span class="number">3</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"Hundred"</span>),
|
||||||
|
<span class="number">4</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"Thousand"</span>),
|
||||||
|
<span class="number">5</span> <span class="op">=</span><span class="op">></span> (), <span class="comment">// Souldn't happen</span>
|
||||||
|
<span class="number">6</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"Million"</span>),
|
||||||
|
<span class="number">7</span> <span class="op">=</span><span class="op">></span> (),
|
||||||
|
<span class="number">8</span> <span class="op">=</span><span class="op">></span> (),
|
||||||
|
<span class="number">9</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"Billion"</span>),
|
||||||
|
<span class="number">10</span> <span class="op">=</span><span class="op">></span> (),
|
||||||
|
<span class="number">11</span> <span class="op">=</span><span class="op">></span> (),
|
||||||
|
<span class="number">12</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"Trillion"</span>),
|
||||||
|
<span class="kw">_</span> <span class="op">=</span><span class="op">></span> (),
|
||||||
|
};
|
||||||
|
} <span class="kw">else</span> {
|
||||||
|
<span class="kw">match</span> <span class="ident">place</span> {
|
||||||
|
<span class="number">1</span> <span class="op">=</span><span class="op">></span> (), <span class="comment">//Can happen but should return the same digit</span>
|
||||||
|
<span class="number">2</span> <span class="op">=</span><span class="op">></span> (), <span class="comment">//This should never happen as 2 is included in the tens_place_holders</span>
|
||||||
|
<span class="number">3</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"hundred"</span>),
|
||||||
|
<span class="number">4</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"thousand"</span>),
|
||||||
|
<span class="number">5</span> <span class="op">=</span><span class="op">></span> (), <span class="comment">// Souldn't happen</span>
|
||||||
|
<span class="number">6</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"million"</span>),
|
||||||
|
<span class="number">7</span> <span class="op">=</span><span class="op">></span> (),
|
||||||
|
<span class="number">8</span> <span class="op">=</span><span class="op">></span> (),
|
||||||
|
<span class="number">9</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"billion"</span>),
|
||||||
|
<span class="number">10</span> <span class="op">=</span><span class="op">></span> (),
|
||||||
|
<span class="number">11</span> <span class="op">=</span><span class="op">></span> (),
|
||||||
|
<span class="number">12</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"trillion"</span>),
|
||||||
|
<span class="kw">_</span> <span class="op">=</span><span class="op">></span> (),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<span class="prelude-val">Some</span>(<span class="ident">buffer</span>)
|
||||||
|
}
|
||||||
|
<span class="kw">fn</span> <span class="ident">tens_place</span>(<span class="ident">tens</span>: <span class="ident">u8</span>, <span class="ident">ones</span>: <span class="ident">u8</span>, <span class="ident">fmt</span>: <span class="kw-2">&</span><span class="ident">Formatting</span>) <span class="op">-</span><span class="op">></span> <span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">String</span><span class="op">></span> {
|
||||||
|
<span class="kw">match</span> <span class="ident">tens</span> {
|
||||||
|
<span class="number">0</span> <span class="op">=</span><span class="op">></span> <span class="ident">digit_to_text</span>(<span class="ident">ones</span>, <span class="ident">fmt</span>.<span class="ident">capitalize</span>),
|
||||||
|
<span class="number">1</span> <span class="op">=</span><span class="op">></span> {
|
||||||
|
<span class="kw">if</span> <span class="ident">fmt</span>.<span class="ident">capitalize</span> {
|
||||||
|
<span class="kw">match</span> <span class="ident">ones</span> {
|
||||||
|
<span class="number">0</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Ten"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">1</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Eleven"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">2</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Twelve"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">3</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Thirteen"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">4</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Fourteen"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">5</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Fifteen"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">6</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Sixteen"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">7</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Seventeen"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">8</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Eighteen"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">9</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"Nineteen"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="kw">_</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">None</span>,
|
||||||
|
}
|
||||||
|
} <span class="kw">else</span> {
|
||||||
|
<span class="kw">match</span> <span class="ident">ones</span> {
|
||||||
|
<span class="number">0</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"ten"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">1</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"eleven"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">2</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"twelve"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">3</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"thirteen"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">4</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"fourteen"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">5</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"fifteen"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">6</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"sixteen"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">7</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"seventeen"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">8</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"eighteen"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="number">9</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>(<span class="string">"nineteen"</span>.<span class="ident">to_string</span>()),
|
||||||
|
<span class="kw">_</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">None</span>,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<span class="ident">d</span> @ <span class="number">2</span>..<span class="op">=</span><span class="number">5</span> <span class="op">|</span> <span class="ident">d</span> @ <span class="number">8</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>({
|
||||||
|
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">buffer</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">new</span>();
|
||||||
|
<span class="kw">if</span> <span class="ident">fmt</span>.<span class="ident">capitalize</span> {
|
||||||
|
<span class="kw">match</span> <span class="ident">d</span> {
|
||||||
|
<span class="number">2</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"Twenty"</span>),
|
||||||
|
<span class="number">3</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"Thirty"</span>),
|
||||||
|
<span class="number">4</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"Forty"</span>),
|
||||||
|
<span class="number">5</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"Fifty"</span>),
|
||||||
|
<span class="number">8</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"Eighty"</span>),
|
||||||
|
<span class="kw">_</span> <span class="op">=</span><span class="op">></span> (),
|
||||||
|
}
|
||||||
|
} <span class="kw">else</span> {
|
||||||
|
<span class="kw">match</span> <span class="ident">d</span> {
|
||||||
|
<span class="number">2</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"twenty"</span>),
|
||||||
|
<span class="number">3</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"thirty"</span>),
|
||||||
|
<span class="number">4</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"forty"</span>),
|
||||||
|
<span class="number">5</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"fifty"</span>),
|
||||||
|
<span class="number">8</span> <span class="op">=</span><span class="op">></span> <span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="string">"eighty"</span>),
|
||||||
|
<span class="kw">_</span> <span class="op">=</span><span class="op">></span> (),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">sep</span>) <span class="op">=</span> <span class="ident">fmt</span>.<span class="ident">tens_seperator</span> {
|
||||||
|
<span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="ident">sep</span>);
|
||||||
|
}
|
||||||
|
<span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="ident">digit_to_text</span>(<span class="ident">ones</span>, <span class="ident">fmt</span>.<span class="ident">capitalize</span>).<span class="ident">unwrap</span>().<span class="ident">as_str</span>());
|
||||||
|
<span class="ident">buffer</span>
|
||||||
|
}),
|
||||||
|
<span class="ident">d</span> @ <span class="number">6</span>..<span class="op">=</span><span class="number">9</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Some</span>({
|
||||||
|
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">buffer</span> <span class="op">=</span> <span class="ident">digit_to_text</span>(<span class="ident">d</span>, <span class="ident">fmt</span>.<span class="ident">capitalize</span>).<span class="ident">unwrap</span>() <span class="op">+</span> <span class="string">"ty"</span>;
|
||||||
|
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">sep</span>) <span class="op">=</span> <span class="ident">fmt</span>.<span class="ident">tens_seperator</span> {
|
||||||
|
<span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="ident">sep</span>);
|
||||||
|
}
|
||||||
|
<span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="ident">digit_to_text</span>(<span class="ident">ones</span>, <span class="ident">fmt</span>.<span class="ident">capitalize</span>).<span class="ident">unwrap</span>().<span class="ident">as_str</span>());
|
||||||
|
<span class="ident">buffer</span>
|
||||||
|
}),
|
||||||
|
<span class="kw">_</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">None</span>,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
<span class="doccomment">/// Convert usize to words in a string seperated by a seperator.</span>
|
||||||
|
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">to_text_fmt</span>(<span class="ident">number</span>: <span class="ident">usize</span>, <span class="ident">fmt</span>: <span class="kw-2">&</span><span class="ident">Formatting</span>) <span class="op">-</span><span class="op">></span> <span class="ident">String</span> {
|
||||||
|
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">numtext</span>: <span class="ident">String</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">new</span>();
|
||||||
|
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">last</span>: <span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">u8</span><span class="op">></span> <span class="op">=</span> <span class="prelude-val">None</span>;
|
||||||
|
<span class="kw">let</span> <span class="ident">tens_place_holders</span>: [<span class="ident">u8</span>; <span class="number">4</span>] <span class="op">=</span> [<span class="number">2</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">10</span>];
|
||||||
|
<span class="kw">let</span> <span class="ident">digits</span>: <span class="ident">Vec</span><span class="op"><</span><span class="ident">u8</span><span class="op">></span> <span class="op">=</span> <span class="ident">number</span>
|
||||||
|
.<span class="ident">to_string</span>()
|
||||||
|
.<span class="ident">chars</span>()
|
||||||
|
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">d</span><span class="op">|</span> <span class="ident">d</span>.<span class="ident">to_digit</span>(<span class="number">10</span>).<span class="ident">unwrap</span>() <span class="kw">as</span> <span class="ident">u8</span>)
|
||||||
|
.<span class="ident">collect</span>();
|
||||||
|
|
||||||
|
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">place</span>: <span class="ident">u8</span> <span class="op">=</span> <span class="ident">digits</span>.<span class="ident">len</span>() <span class="kw">as</span> <span class="ident">u8</span>;
|
||||||
|
|
||||||
|
<span class="kw">for</span> (<span class="ident">_index</span>, <span class="ident">digit</span>) <span class="kw">in</span> <span class="ident">digits</span>.<span class="ident">iter</span>().<span class="ident">enumerate</span>() {
|
||||||
|
<span class="kw">if</span> <span class="ident">tens_place_holders</span>.<span class="ident">contains</span>(<span class="kw-2">&</span><span class="ident">place</span>) {
|
||||||
|
<span class="ident">last</span> <span class="op">=</span> <span class="prelude-val">Some</span>(<span class="kw-2">*</span><span class="ident">digit</span>);
|
||||||
|
<span class="ident">place</span> <span class="op">-</span><span class="op">=</span> <span class="number">1</span>;
|
||||||
|
<span class="kw">continue</span>;
|
||||||
|
}
|
||||||
|
<span class="kw">if</span> <span class="kw-2">*</span><span class="ident">digit</span> <span class="op">!</span><span class="op">=</span> <span class="number">0</span> <span class="op">&&</span> <span class="ident">place</span> <span class="op">!</span><span class="op">=</span> <span class="ident">digits</span>.<span class="ident">len</span>() <span class="kw">as</span> <span class="ident">u8</span> <span class="op">&&</span> <span class="ident">numtext</span> <span class="op">!</span><span class="op">=</span> <span class="string">""</span> {
|
||||||
|
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">sep</span>) <span class="op">=</span> <span class="ident">fmt</span>.<span class="ident">digit_seperator</span> {
|
||||||
|
<span class="ident">numtext</span>.<span class="ident">push_str</span>(<span class="ident">sep</span>);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">last_digit</span>) <span class="op">=</span> <span class="ident">last</span> {
|
||||||
|
<span class="ident">numtext</span>.<span class="ident">push_str</span>(<span class="ident">tens_place</span>(<span class="ident">last_digit</span>, <span class="kw-2">*</span><span class="ident">digit</span>, <span class="ident">fmt</span>).<span class="ident">unwrap</span>().<span class="ident">as_str</span>());
|
||||||
|
<span class="kw">if</span> <span class="ident">place</span> <span class="op">></span> <span class="number">2</span> {
|
||||||
|
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">sep</span>) <span class="op">=</span> <span class="ident">fmt</span>.<span class="ident">place_seperator</span> {
|
||||||
|
<span class="ident">numtext</span>.<span class="ident">push_str</span>(<span class="ident">sep</span>);
|
||||||
|
}
|
||||||
|
<span class="ident">numtext</span>.<span class="ident">push_str</span>(<span class="ident">place_value</span>(<span class="number">0</span>, <span class="ident">place</span>, <span class="ident">fmt</span>).<span class="ident">unwrap</span>().<span class="ident">as_str</span>());
|
||||||
|
}
|
||||||
|
<span class="ident">last</span> <span class="op">=</span> <span class="prelude-val">None</span>;
|
||||||
|
} <span class="kw">else</span> <span class="kw">if</span> <span class="kw-2">*</span><span class="ident">digit</span> <span class="op">!</span><span class="op">=</span> <span class="number">0</span> {
|
||||||
|
<span class="ident">numtext</span>.<span class="ident">push_str</span>(<span class="ident">place_value</span>(<span class="kw-2">*</span><span class="ident">digit</span>, <span class="ident">place</span>, <span class="ident">fmt</span>).<span class="ident">unwrap</span>().<span class="ident">as_str</span>());
|
||||||
|
}
|
||||||
|
<span class="ident">place</span> <span class="op">-</span><span class="op">=</span> <span class="number">1</span>;
|
||||||
|
}
|
||||||
|
<span class="ident">numtext</span>
|
||||||
|
}
|
||||||
|
</pre></div>
|
||||||
|
</section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "ntext";</script><script src="../../main.js"></script><script src="../../source-script.js"></script><script src="../../source-files.js"></script><script defer src="../../search-index.js"></script></body></html>
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source of the Rust file `src/test.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>test.rs - source</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||||
|
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc source"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../../ntext/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||||
|
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><pre class="line-numbers"><span id="1"> 1</span>
|
||||||
|
<span id="2"> 2</span>
|
||||||
|
<span id="3"> 3</span>
|
||||||
|
<span id="4"> 4</span>
|
||||||
|
<span id="5"> 5</span>
|
||||||
|
<span id="6"> 6</span>
|
||||||
|
<span id="7"> 7</span>
|
||||||
|
<span id="8"> 8</span>
|
||||||
|
<span id="9"> 9</span>
|
||||||
|
<span id="10">10</span>
|
||||||
|
<span id="11">11</span>
|
||||||
|
<span id="12">12</span>
|
||||||
|
<span id="13">13</span>
|
||||||
|
<span id="14">14</span>
|
||||||
|
<span id="15">15</span>
|
||||||
|
<span id="16">16</span>
|
||||||
|
<span id="17">17</span>
|
||||||
|
<span id="18">18</span>
|
||||||
|
<span id="19">19</span>
|
||||||
|
<span id="20">20</span>
|
||||||
|
<span id="21">21</span>
|
||||||
|
<span id="22">22</span>
|
||||||
|
<span id="23">23</span>
|
||||||
|
<span id="24">24</span>
|
||||||
|
<span id="25">25</span>
|
||||||
|
<span id="26">26</span>
|
||||||
|
<span id="27">27</span>
|
||||||
|
<span id="28">28</span>
|
||||||
|
<span id="29">29</span>
|
||||||
|
<span id="30">30</span>
|
||||||
|
<span id="31">31</span>
|
||||||
|
<span id="32">32</span>
|
||||||
|
<span id="33">33</span>
|
||||||
|
<span id="34">34</span>
|
||||||
|
<span id="35">35</span>
|
||||||
|
<span id="36">36</span>
|
||||||
|
<span id="37">37</span>
|
||||||
|
<span id="38">38</span>
|
||||||
|
<span id="39">39</span>
|
||||||
|
<span id="40">40</span>
|
||||||
|
<span id="41">41</span>
|
||||||
|
<span id="42">42</span>
|
||||||
|
<span id="43">43</span>
|
||||||
|
</pre><div class="example-wrap"><pre class="rust ">
|
||||||
|
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
|
||||||
|
<span class="kw">mod</span> <span class="ident">tests</span> {
|
||||||
|
<span class="attribute">#[<span class="ident">test</span>]</span>
|
||||||
|
<span class="kw">fn</span> <span class="ident">digits</span>() {
|
||||||
|
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">digit_to_text</span>;
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">digit_to_text</span>(<span class="number">9</span>, <span class="bool-val">false</span>).<span class="ident">unwrap</span>(), <span class="string">"nine"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">digit_to_text</span>(<span class="number">3</span>, <span class="bool-val">false</span>).<span class="ident">unwrap</span>(), <span class="string">"three"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">digit_to_text</span>(<span class="number">7</span>, <span class="bool-val">false</span>).<span class="ident">unwrap</span>(), <span class="string">"seven"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">digit_to_text</span>(<span class="number">5</span>, <span class="bool-val">false</span>).<span class="ident">unwrap</span>(), <span class="string">"five"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">digit_to_text</span>(<span class="number">5</span>, <span class="bool-val">true</span>).<span class="ident">unwrap</span>(), <span class="string">"Five"</span>);
|
||||||
|
}
|
||||||
|
<span class="attribute">#[<span class="ident">test</span>]</span>
|
||||||
|
<span class="kw">fn</span> <span class="ident">numbers</span>() {
|
||||||
|
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">to_text_fmt</span> <span class="kw">as</span> <span class="ident">to_text</span>;
|
||||||
|
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">Formatting</span>;
|
||||||
|
<span class="kw">let</span> <span class="ident">fmt</span> <span class="op">=</span> <span class="kw-2">&</span><span class="ident">Formatting</span>::<span class="ident">none</span>();
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">to_text</span>(<span class="number">1</span>, <span class="ident">fmt</span>), <span class="string">"one"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">to_text</span>(<span class="number">10</span>, <span class="ident">fmt</span>), <span class="string">"ten"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">to_text</span>(<span class="number">100</span>, <span class="ident">fmt</span>), <span class="string">"onehundred"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">to_text</span>(<span class="number">1000</span>, <span class="ident">fmt</span>), <span class="string">"onethousand"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">to_text</span>(<span class="number">12345</span>, <span class="ident">fmt</span>), <span class="string">"twelvethousandthreehundredfortyfive"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(
|
||||||
|
<span class="ident">to_text</span>(<span class="number">81123</span>, <span class="ident">fmt</span>),
|
||||||
|
<span class="string">"eightyonethousandonehundredtwentythree"</span>
|
||||||
|
);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">to_text</span>(<span class="number">12</span>, <span class="ident">fmt</span>), <span class="string">"twelve"</span>);
|
||||||
|
}
|
||||||
|
<span class="attribute">#[<span class="ident">test</span>]</span>
|
||||||
|
<span class="kw">fn</span> <span class="ident">numbers_formatting</span>() {
|
||||||
|
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">to_text_fmt</span> <span class="kw">as</span> <span class="ident">to_text</span>;
|
||||||
|
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">Formatting</span>;
|
||||||
|
<span class="kw">let</span> <span class="ident">fmt</span> <span class="op">=</span> <span class="kw-2">&</span><span class="ident">Formatting</span>::<span class="ident">default</span>();
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">to_text</span>(<span class="number">1</span>, <span class="ident">fmt</span>), <span class="string">"One"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">to_text</span>(<span class="number">10</span>, <span class="ident">fmt</span>), <span class="string">"Ten"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">to_text</span>(<span class="number">100</span>, <span class="ident">fmt</span>), <span class="string">"One Hundred"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">to_text</span>(<span class="number">1000</span>, <span class="ident">fmt</span>), <span class="string">"One Thousand"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">to_text</span>(<span class="number">12315</span>, <span class="ident">fmt</span>), <span class="string">"Twelve Thousand,Three Hundred,Fifteen"</span>);
|
||||||
|
<span class="macro">assert_eq</span><span class="macro">!</span>(
|
||||||
|
<span class="ident">to_text</span>(<span class="number">1235245</span>, <span class="ident">fmt</span>),
|
||||||
|
<span class="string">"Twelve Million,Thirty-Five Thousand,Two Hundred,Forty-Five"</span>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</pre></div>
|
||||||
|
</section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "ntext";</script><script src="../../main.js"></script><script src="../../source-script.js"></script><script src="../../source-files.js"></script><script defer src="../../search-index.js"></script></body></html>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
var resourcesSuffix="";var darkThemes=["dark","ayu"];var currentTheme=document.getElementById("themeStyle");var mainTheme=document.getElementById("mainThemeStyle");var settingsDataset=(function(){var settingsElement=document.getElementById("default-settings");if(settingsElement===null){return null}var dataset=settingsElement.dataset;if(dataset===undefined){return null}return dataset})();function getSettingValue(settingName){var current=getCurrentValue('rustdoc-'+settingName);if(current!==null){return current}if(settingsDataset!==null){var def=settingsDataset[settingName.replace(/-/g,'_')];if(def!==undefined){return def}}return null}var localStoredTheme=getSettingValue("theme");var savedHref=[];function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(!elem||!elem.classList){return}elem.classList.add(className)}function removeClass(elem,className){if(!elem||!elem.classList){return}elem.classList.remove(className)}function onEach(arr,func,reversed){if(arr&&arr.length>0&&func){var length=arr.length;var i;if(reversed!==true){for(i=0;i<length;++i){if(func(arr[i])===true){return true}}}else{for(i=length-1;i>=0;--i){if(func(arr[i])===true){return true}}}}return false}function onEachLazy(lazyArray,func,reversed){return onEach(Array.prototype.slice.call(lazyArray),func,reversed)}function hasOwnProperty(obj,property){return Object.prototype.hasOwnProperty.call(obj,property)}function usableLocalStorage(){if(typeof Storage==="undefined"){return false}try{return window.localStorage!==null&&window.localStorage!==undefined}catch(err){return false}}function updateLocalStorage(name,value){if(usableLocalStorage()){localStorage[name]=value}else{}}function getCurrentValue(name){if(usableLocalStorage()&&localStorage[name]!==undefined){return localStorage[name]}return null}function switchTheme(styleElem,mainStyleElem,newTheme,saveTheme){var fullBasicCss="rustdoc"+resourcesSuffix+".css";var fullNewTheme=newTheme+resourcesSuffix+".css";var newHref=mainStyleElem.href.replace(fullBasicCss,fullNewTheme);if(saveTheme===true){updateLocalStorage("rustdoc-theme",newTheme)}if(styleElem.href===newHref){return}var found=false;if(savedHref.length===0){onEachLazy(document.getElementsByTagName("link"),function(el){savedHref.push(el.href)})}onEach(savedHref,function(el){if(el===newHref){found=true;return true}});if(found===true){styleElem.href=newHref}}function useSystemTheme(value){if(value===undefined){value=true}updateLocalStorage("rustdoc-use-system-theme",value);var toggle=document.getElementById("use-system-theme");if(toggle&&toggle instanceof HTMLInputElement){toggle.checked=value}}var updateSystemTheme=(function(){if(!window.matchMedia){return function(){let cssTheme=getComputedStyle(document.documentElement).getPropertyValue('content');switchTheme(currentTheme,mainTheme,JSON.parse(cssTheme)||light,true)}}var mql=window.matchMedia("(prefers-color-scheme: dark)");function handlePreferenceChange(mql){if(getSettingValue("use-system-theme")!=="false"){var lightTheme=getSettingValue("preferred-light-theme")||"light";var darkTheme=getSettingValue("preferred-dark-theme")||"dark";if(mql.matches){switchTheme(currentTheme,mainTheme,darkTheme,true)}else{switchTheme(currentTheme,mainTheme,lightTheme,true)}}}mql.addListener(handlePreferenceChange);return function(){handlePreferenceChange(mql)}})();if(getSettingValue("use-system-theme")!=="false"&&window.matchMedia){if(getSettingValue("use-system-theme")===null&&getSettingValue("preferred-dark-theme")===null&&darkThemes.indexOf(localStoredTheme)>=0){updateLocalStorage("rustdoc-preferred-dark-theme",localStoredTheme)}updateSystemTheme()}else{switchTheme(currentTheme,mainTheme,getSettingValue("theme")||"light",false)}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
var themes=document.getElementById("theme-choices");var themePicker=document.getElementById("theme-picker");function showThemeButtonState(){themes.style.display="block";themePicker.style.borderBottomRightRadius="0";themePicker.style.borderBottomLeftRadius="0"}function hideThemeButtonState(){themes.style.display="none";themePicker.style.borderBottomRightRadius="3px";themePicker.style.borderBottomLeftRadius="3px"}function switchThemeButtonState(){if(themes.style.display==="block"){hideThemeButtonState()}else{showThemeButtonState()}};function handleThemeButtonsBlur(e){var active=document.activeElement;var related=e.relatedTarget;if(active.id!=="theme-picker"&&(!active.parentNode||active.parentNode.id!=="theme-choices")&&(!related||(related.id!=="theme-picker"&&(!related.parentNode||related.parentNode.id!=="theme-choices")))){hideThemeButtonState()}}themePicker.onclick=switchThemeButtonState;themePicker.onblur=handleThemeButtonsBlur;["ayu","dark","light"].forEach(function(item){var but=document.createElement("button");but.textContent=item;but.onclick=function(el){switchTheme(currentTheme,mainTheme,item,true);useSystemTheme(false)};but.onblur=handleThemeButtonsBlur;themes.appendChild(but)})
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="Capa_1" width="27.434" height="29.5" enable-background="new 0 0 27.434 29.5" version="1.1" viewBox="0 0 27.434 29.5" xml:space="preserve"><g><path d="M27.315,18.389c-0.165-0.604-0.509-1.113-0.981-1.459c-0.042-0.144-0.083-0.429-0.015-0.761l0.037-0.177v-0.182V14.8 c0-1.247-0.006-1.277-0.048-1.472c-0.076-0.354-0.035-0.653,0.007-0.803c0.477-0.346,0.828-0.861,0.996-1.476 c0.261-0.956,0.076-2.091-0.508-3.114l-0.591-1.032c-0.746-1.307-1.965-2.119-3.182-2.119c-0.378,0-0.75,0.081-1.085,0.235 c-0.198-0.025-0.554-0.15-0.855-0.389l-0.103-0.082l-0.114-0.065l-1.857-1.067L18.92,3.36l-0.105-0.044 c-0.376-0.154-0.658-0.41-0.768-0.556C17.918,1.172,16.349,0,14.296,0H13.14c-2.043,0-3.608,1.154-3.749,2.721 C9.277,2.862,8.999,3.104,8.633,3.25l-0.1,0.039L8.439,3.341L6.495,4.406L6.363,4.479L6.245,4.573 C5.936,4.82,5.596,4.944,5.416,4.977c-0.314-0.139-0.66-0.21-1.011-0.21c-1.198,0-2.411,0.819-3.165,2.139L0.65,7.938 c-0.412,0.72-0.642,1.521-0.644,2.258c-0.003,0.952,0.362,1.756,1.013,2.256c0.034,0.155,0.061,0.448-0.016,0.786 c-0.038,0.168-0.062,0.28-0.062,1.563c0,1.148,0,1.148,0.015,1.262l0.009,0.073l0.017,0.073c0.073,0.346,0.045,0.643,0.011,0.802 C0.348,17.512-0.01,18.314,0,19.268c0.008,0.729,0.238,1.523,0.648,2.242l0.589,1.031c0.761,1.331,1.967,2.159,3.15,2.159 c0.324,0,0.645-0.064,0.938-0.187c0.167,0.038,0.492,0.156,0.813,0.416l0.11,0.088l0.124,0.07l2.045,1.156l0.102,0.057l0.107,0.043 c0.364,0.147,0.646,0.381,0.766,0.521c0.164,1.52,1.719,2.634,3.745,2.634h1.155c2.037,0,3.598-1.134,3.747-2.675 c0.117-0.145,0.401-0.393,0.774-0.549l0.111-0.047l0.105-0.062l1.96-1.159l0.105-0.062l0.097-0.075 c0.309-0.246,0.651-0.371,0.832-0.402c0.313,0.138,0.662,0.212,1.016,0.212c1.199,0,2.412-0.82,3.166-2.139l0.59-1.032 C27.387,20.48,27.575,19.342,27.315,18.389z M25.274,20.635l-0.59,1.032c-0.438,0.765-1.104,1.251-1.639,1.251 c-0.133,0-0.258-0.029-0.369-0.094c-0.15-0.086-0.346-0.127-0.566-0.127c-0.596,0-1.383,0.295-2.01,0.796l-1.96,1.157 c-1.016,0.425-1.846,1.291-1.846,1.929s-0.898,1.159-1.998,1.159H13.14c-1.1,0-1.998-0.514-1.998-1.141s-0.834-1.477-1.854-1.888 l-2.046-1.157c-0.636-0.511-1.425-0.814-2.006-0.814c-0.202,0-0.379,0.037-0.516,0.115c-0.101,0.057-0.214,0.084-0.333,0.084 c-0.518,0-1.179-0.498-1.62-1.271l-0.591-1.032c-0.545-0.954-0.556-1.983-0.024-2.286c0.532-0.305,0.78-1.432,0.551-2.506 c0,0,0-0.003,0-1.042c0-1.088,0.021-1.18,0.021-1.18c0.238-1.072-0.01-2.203-0.552-2.513C1.631,10.8,1.634,9.765,2.18,8.812 L2.769,7.78c0.438-0.766,1.103-1.251,1.636-1.251c0.131,0,0.255,0.029,0.365,0.092C4.92,6.707,5.114,6.747,5.334,6.747 c0.596,0,1.38-0.296,2.007-0.795l1.944-1.065c1.021-0.407,1.856-1.277,1.856-1.933c0-0.656,0.898-1.192,1.998-1.192h1.156V1.761 c1.1,0,1.998,0.545,1.998,1.211c0,0.667,0.832,1.554,1.849,1.973L20,6.013c0.618,0.489,1.401,0.775,2.012,0.775 c0.24,0,0.454-0.045,0.62-0.139c0.122-0.069,0.259-0.102,0.403-0.102c0.551,0,1.221,0.476,1.653,1.231l0.59,1.032 c0.544,0.953,0.518,2.004-0.062,2.334c-0.577,0.331-0.859,1.48-0.627,2.554c0,0,0.01,0.042,0.01,1.103c0,1.012,0,1.012,0,1.012 c-0.218,1.049,0.068,2.174,0.636,2.498C25.802,18.635,25.819,19.68,25.274,20.635z"/><path d="M13.61,7.611c-3.913,0-7.084,3.173-7.084,7.085c0,3.914,3.171,7.085,7.084,7.085s7.085-3.172,7.085-7.085 C20.695,10.784,17.523,7.611,13.61,7.611z M13.61,20.02c-2.936,0-5.323-2.388-5.323-5.323c0-2.935,2.388-5.323,5.323-5.323 s5.324,2.388,5.324,5.323C18.934,17.632,16.546,20.02,13.61,20.02z"/><path d="M13.682,9.908c-2.602,0-4.718,2.116-4.718,4.718c0,2.601,2.116,4.716,4.718,4.716c2.601,0,4.717-2.115,4.717-4.716 C18.399,12.024,16.283,9.908,13.682,9.908z M13.682,17.581c-1.633,0-2.956-1.323-2.956-2.955s1.323-2.956,2.956-2.956 c1.632,0,2.956,1.324,2.956,2.956S15.314,17.581,13.682,17.581z"/></g></svg>
|
||||||
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,10 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>HTML Meta Tag</title>
|
||||||
|
<meta http-equiv = "refresh" content = "0; url = https://uttarayan21.github.io/ntext-rs/ntext/index.html" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>Redirecting to documentation</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
/// Set the formatting of the output
|
|
||||||
#[derive(Clone, Copy)]
|
|
||||||
pub struct Formatting<'format> {
|
|
||||||
/// capitalize the start of the word.
|
|
||||||
pub capitalize: bool,
|
|
||||||
/// Set the seperator in between digits like "threehundred,twentytwo".
|
|
||||||
pub digit_seperator: Option<&'format str>,
|
|
||||||
/// Set the seperator in between words like "three/hundred".
|
|
||||||
pub place_seperator: Option<&'format str>,
|
|
||||||
/// Set the seperator between tens place digits like "twenty-two".
|
|
||||||
pub tens_seperator: Option<&'format str>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'format> Formatting<'format> {
|
|
||||||
/// Get the default formatting.
|
|
||||||
pub fn default() -> Self {
|
|
||||||
Self {
|
|
||||||
capitalize: true,
|
|
||||||
digit_seperator: Some(","),
|
|
||||||
place_seperator: Some(" "),
|
|
||||||
tens_seperator: Some("-"),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/// No formatting at all
|
|
||||||
pub fn none() -> Self {
|
|
||||||
Self {
|
|
||||||
capitalize: false,
|
|
||||||
digit_seperator: None,
|
|
||||||
place_seperator: None,
|
|
||||||
tens_seperator: None,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/// With same formatting for all seperators
|
|
||||||
pub fn with_seperator(seperator: &'format str) -> Self {
|
|
||||||
Self {
|
|
||||||
capitalize: false,
|
|
||||||
digit_seperator: Some(seperator),
|
|
||||||
place_seperator: Some(seperator),
|
|
||||||
tens_seperator: Some(seperator),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/// Capitalize the formatting
|
|
||||||
pub fn capitalize(&mut self) -> Self {
|
|
||||||
self.capitalize = true;
|
|
||||||
Self {
|
|
||||||
capitalize: self.capitalize,
|
|
||||||
digit_seperator: self.digit_seperator,
|
|
||||||
place_seperator: self.place_seperator,
|
|
||||||
tens_seperator: self.tens_seperator,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/// Lower case the formatting struct
|
|
||||||
pub fn decapitalize(&mut self) -> Self {
|
|
||||||
self.capitalize = false;
|
|
||||||
Self {
|
|
||||||
capitalize: self.capitalize,
|
|
||||||
digit_seperator: self.digit_seperator,
|
|
||||||
place_seperator: self.place_seperator,
|
|
||||||
tens_seperator: self.tens_seperator,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
//! Example program with default formatting
|
|
||||||
//!```rust
|
|
||||||
//!extern crate ntext;
|
|
||||||
//!use ntext::to_text;
|
|
||||||
//!fn main() {
|
|
||||||
//! assert_eq!(to_text!(7123),"Seven Thousand,One Hundred,Twenty-Three");
|
|
||||||
//! assert_eq!(to_text!(1000),"One Thousand");
|
|
||||||
//!}
|
|
||||||
//!```
|
|
||||||
//! Example program with custom formatting
|
|
||||||
//!
|
|
||||||
//!```rust
|
|
||||||
//!extern crate ntext;
|
|
||||||
//!use ntext::{Formatting,to_text};
|
|
||||||
//!fn main() {
|
|
||||||
//! assert_eq!(to_text!(1000, &Formatting::none().capitalize()),"OneThousand");
|
|
||||||
//! assert_eq!(to_text!(34123, &Formatting::with_seperator("#").capitalize()),"Thirty#Four#Thousand#One#Hundred#Twenty#Three");
|
|
||||||
//!}
|
|
||||||
//!```
|
|
||||||
//! This macro will also return an empty string on input zero
|
|
||||||
//! You can also create the Formatting struct manually
|
|
||||||
//! Source [ntext-rs](https://github.com/uttarayan21/ntext-rs)
|
|
||||||
|
|
||||||
mod formatting;
|
|
||||||
mod numtext;
|
|
||||||
mod test;
|
|
||||||
|
|
||||||
pub use formatting::Formatting;
|
|
||||||
pub use numtext::{digit_to_text, to_text_fmt};
|
|
||||||
|
|
||||||
/// Macro which supports both seperator and without it
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! to_text {
|
|
||||||
($number:expr) => {
|
|
||||||
ntext::to_text_fmt($number, &ntext::Formatting::default());
|
|
||||||
};
|
|
||||||
($number:expr, $formatting:expr) => {
|
|
||||||
ntext::to_text_fmt($number, $formatting);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,189 +0,0 @@
|
|||||||
use crate::Formatting;
|
|
||||||
|
|
||||||
/// Convert digit to words in a string.
|
|
||||||
pub fn digit_to_text(digit: u8, capitalize: bool) -> Option<String> {
|
|
||||||
if capitalize {
|
|
||||||
match digit {
|
|
||||||
0 => Some("".to_string()),
|
|
||||||
1 => Some("One".to_string()),
|
|
||||||
2 => Some("Two".to_string()),
|
|
||||||
3 => Some("Three".to_string()),
|
|
||||||
4 => Some("Four".to_string()),
|
|
||||||
5 => Some("Five".to_string()),
|
|
||||||
6 => Some("Six".to_string()),
|
|
||||||
7 => Some("Seven".to_string()),
|
|
||||||
8 => Some("Eight".to_string()),
|
|
||||||
9 => Some("Nine".to_string()),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
match digit {
|
|
||||||
0 => Some("".to_string()),
|
|
||||||
1 => Some("one".to_string()),
|
|
||||||
2 => Some("two".to_string()),
|
|
||||||
3 => Some("three".to_string()),
|
|
||||||
4 => Some("four".to_string()),
|
|
||||||
5 => Some("five".to_string()),
|
|
||||||
6 => Some("six".to_string()),
|
|
||||||
7 => Some("seven".to_string()),
|
|
||||||
8 => Some("eight".to_string()),
|
|
||||||
9 => Some("nine".to_string()),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fn place_value(number: u8, place: u8, fmt: &Formatting) -> Option<String> {
|
|
||||||
let mut buffer = digit_to_text(number, fmt.capitalize).unwrap();
|
|
||||||
if let Some(sep) = fmt.place_seperator {
|
|
||||||
if number != 0 && place != 1 {
|
|
||||||
buffer.push_str(sep)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if fmt.capitalize {
|
|
||||||
match place {
|
|
||||||
1 => (), //Can happen but should return the same digit
|
|
||||||
2 => (), //This should never happen as 2 is included in the tens_place_holders
|
|
||||||
3 => buffer.push_str("Hundred"),
|
|
||||||
4 => buffer.push_str("Thousand"),
|
|
||||||
5 => (), // Souldn't happen
|
|
||||||
6 => buffer.push_str("Million"),
|
|
||||||
7 => (),
|
|
||||||
8 => (),
|
|
||||||
9 => buffer.push_str("Billion"),
|
|
||||||
10 => (),
|
|
||||||
11 => (),
|
|
||||||
12 => buffer.push_str("Trillion"),
|
|
||||||
_ => (),
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
match place {
|
|
||||||
1 => (), //Can happen but should return the same digit
|
|
||||||
2 => (), //This should never happen as 2 is included in the tens_place_holders
|
|
||||||
3 => buffer.push_str("hundred"),
|
|
||||||
4 => buffer.push_str("thousand"),
|
|
||||||
5 => (), // Souldn't happen
|
|
||||||
6 => buffer.push_str("million"),
|
|
||||||
7 => (),
|
|
||||||
8 => (),
|
|
||||||
9 => buffer.push_str("billion"),
|
|
||||||
10 => (),
|
|
||||||
11 => (),
|
|
||||||
12 => buffer.push_str("trillion"),
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some(buffer)
|
|
||||||
}
|
|
||||||
fn tens_place(tens: u8, ones: u8, fmt: &Formatting) -> Option<String> {
|
|
||||||
match tens {
|
|
||||||
0 => digit_to_text(ones, fmt.capitalize),
|
|
||||||
1 => {
|
|
||||||
if fmt.capitalize {
|
|
||||||
match ones {
|
|
||||||
0 => Some("Ten".to_string()),
|
|
||||||
1 => Some("Eleven".to_string()),
|
|
||||||
2 => Some("Twelve".to_string()),
|
|
||||||
3 => Some("Thirteen".to_string()),
|
|
||||||
4 => Some("Fourteen".to_string()),
|
|
||||||
5 => Some("Fifteen".to_string()),
|
|
||||||
6 => Some("Sixteen".to_string()),
|
|
||||||
7 => Some("Seventeen".to_string()),
|
|
||||||
8 => Some("Eighteen".to_string()),
|
|
||||||
9 => Some("Nineteen".to_string()),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
match ones {
|
|
||||||
0 => Some("ten".to_string()),
|
|
||||||
1 => Some("eleven".to_string()),
|
|
||||||
2 => Some("twelve".to_string()),
|
|
||||||
3 => Some("thirteen".to_string()),
|
|
||||||
4 => Some("fourteen".to_string()),
|
|
||||||
5 => Some("fifteen".to_string()),
|
|
||||||
6 => Some("sixteen".to_string()),
|
|
||||||
7 => Some("seventeen".to_string()),
|
|
||||||
8 => Some("eighteen".to_string()),
|
|
||||||
9 => Some("nineteen".to_string()),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
d @ 2..=5 | d @ 8 => Some({
|
|
||||||
let mut buffer = String::new();
|
|
||||||
if fmt.capitalize {
|
|
||||||
match d {
|
|
||||||
2 => buffer.push_str("Twenty"),
|
|
||||||
3 => buffer.push_str("Thirty"),
|
|
||||||
4 => buffer.push_str("Forty"),
|
|
||||||
5 => buffer.push_str("Fifty"),
|
|
||||||
8 => buffer.push_str("Eighty"),
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
match d {
|
|
||||||
2 => buffer.push_str("twenty"),
|
|
||||||
3 => buffer.push_str("thirty"),
|
|
||||||
4 => buffer.push_str("forty"),
|
|
||||||
5 => buffer.push_str("fifty"),
|
|
||||||
8 => buffer.push_str("eighty"),
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if let Some(sep) = fmt.tens_seperator {
|
|
||||||
buffer.push_str(sep);
|
|
||||||
}
|
|
||||||
buffer.push_str(digit_to_text(ones, fmt.capitalize).unwrap().as_str());
|
|
||||||
buffer
|
|
||||||
}),
|
|
||||||
d @ 6..=9 => Some({
|
|
||||||
let mut buffer = digit_to_text(d, fmt.capitalize).unwrap() + "ty";
|
|
||||||
if let Some(sep) = fmt.tens_seperator {
|
|
||||||
buffer.push_str(sep);
|
|
||||||
}
|
|
||||||
buffer.push_str(digit_to_text(ones, fmt.capitalize).unwrap().as_str());
|
|
||||||
buffer
|
|
||||||
}),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Convert usize to words in a string seperated by a seperator.
|
|
||||||
pub fn to_text_fmt(number: usize, fmt: &Formatting) -> String {
|
|
||||||
let mut numtext: String = String::new();
|
|
||||||
let mut last: Option<u8> = None;
|
|
||||||
let tens_place_holders: [u8; 4] = [2, 5, 7, 10];
|
|
||||||
let digits: Vec<u8> = number
|
|
||||||
.to_string()
|
|
||||||
.chars()
|
|
||||||
.map(|d| d.to_digit(10).unwrap() as u8)
|
|
||||||
.collect();
|
|
||||||
|
|
||||||
let mut place: u8 = digits.len() as u8;
|
|
||||||
|
|
||||||
for (_index, digit) in digits.iter().enumerate() {
|
|
||||||
if tens_place_holders.contains(&place) {
|
|
||||||
last = Some(*digit);
|
|
||||||
place -= 1;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if *digit != 0 && place != digits.len() as u8 && numtext != "" {
|
|
||||||
if let Some(sep) = fmt.digit_seperator {
|
|
||||||
numtext.push_str(sep);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if let Some(last_digit) = last {
|
|
||||||
numtext.push_str(tens_place(last_digit, *digit, fmt).unwrap().as_str());
|
|
||||||
if place > 2 {
|
|
||||||
if let Some(sep) = fmt.place_seperator {
|
|
||||||
numtext.push_str(sep);
|
|
||||||
}
|
|
||||||
numtext.push_str(place_value(0, place, fmt).unwrap().as_str());
|
|
||||||
}
|
|
||||||
last = None;
|
|
||||||
} else if *digit != 0 {
|
|
||||||
numtext.push_str(place_value(*digit, place, fmt).unwrap().as_str());
|
|
||||||
}
|
|
||||||
place -= 1;
|
|
||||||
}
|
|
||||||
numtext
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
#[test]
|
|
||||||
fn digits() {
|
|
||||||
use crate::digit_to_text;
|
|
||||||
assert_eq!(digit_to_text(9, false).unwrap(), "nine");
|
|
||||||
assert_eq!(digit_to_text(3, false).unwrap(), "three");
|
|
||||||
assert_eq!(digit_to_text(7, false).unwrap(), "seven");
|
|
||||||
assert_eq!(digit_to_text(5, false).unwrap(), "five");
|
|
||||||
assert_eq!(digit_to_text(5, true).unwrap(), "Five");
|
|
||||||
}
|
|
||||||
#[test]
|
|
||||||
fn numbers() {
|
|
||||||
use crate::to_text_fmt as to_text;
|
|
||||||
use crate::Formatting;
|
|
||||||
let fmt = &Formatting::none();
|
|
||||||
assert_eq!(to_text(1, fmt), "one");
|
|
||||||
assert_eq!(to_text(10, fmt), "ten");
|
|
||||||
assert_eq!(to_text(100, fmt), "onehundred");
|
|
||||||
assert_eq!(to_text(1000, fmt), "onethousand");
|
|
||||||
assert_eq!(to_text(12345, fmt), "twelvethousandthreehundredfortyfive");
|
|
||||||
assert_eq!(
|
|
||||||
to_text(81123, fmt),
|
|
||||||
"eightyonethousandonehundredtwentythree"
|
|
||||||
);
|
|
||||||
assert_eq!(to_text(12, fmt), "twelve");
|
|
||||||
}
|
|
||||||
#[test]
|
|
||||||
fn numbers_formatting() {
|
|
||||||
use crate::to_text_fmt as to_text;
|
|
||||||
use crate::Formatting;
|
|
||||||
let fmt = &Formatting::default();
|
|
||||||
assert_eq!(to_text(1, fmt), "One");
|
|
||||||
assert_eq!(to_text(10, fmt), "Ten");
|
|
||||||
assert_eq!(to_text(100, fmt), "One Hundred");
|
|
||||||
assert_eq!(to_text(1000, fmt), "One Thousand");
|
|
||||||
assert_eq!(to_text(12315, fmt), "Twelve Thousand,Three Hundred,Fifteen");
|
|
||||||
assert_eq!(
|
|
||||||
to_text(1235245, fmt),
|
|
||||||
"Twelve Million,Thirty-Five Thousand,Two Hundred,Forty-Five"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||