Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a964475234 | |||
| 79c60e00d8 | |||
| 3c63914ffd | |||
| 20b52dbdb1 | |||
| feba099ed2 | |||
| 854d2da9eb | |||
| 21df4e0461 | |||
| 652de0b9c6 | |||
| 71b760fef3 | |||
| 653648e3ce | |||
| 0445640de4 | |||
| 1223252111 | |||
| cc82c47628 |
@@ -1,9 +0,0 @@
|
|||||||
[package]
|
|
||||||
name = "ntext"
|
|
||||||
version = "0.1.2"
|
|
||||||
authors = ["Uttarayan Mondal <uttarayan21@gmail.com>"]
|
|
||||||
edition = "2018"
|
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
@@ -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,31 +0,0 @@
|
|||||||
# ntext-rs
|
|
||||||
|
|
||||||
Documentation of [ntext-rs](https://uttarayan21.github.io/ntext-rs) generated by cargo doc.
|
|
||||||
|
|
||||||
A rust library to get numbers (u32) as words
|
|
||||||
|
|
||||||
`12345 ` -> `twelvethousandthreehundredfortyfive`
|
|
||||||
|
|
||||||
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));
|
|
||||||
println!("{}",to_text!(12345," "));
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
which should output
|
|
||||||
`twelvethousandthreehundredfortyfive`
|
|
||||||
`twelve thousand three hundred forty five`
|
|
||||||
|
|
||||||
I will probably add formatting the text later
|
|
||||||
+1
-1
File diff suppressed because one or more lines are too long
@@ -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;}})()
|
||||||
+3
-3
File diff suppressed because one or more lines are too long
+3
-4
@@ -1,7 +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">
|
<!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-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.1.2</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>
|
<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="in-band">List of all items</span><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 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>
|
||||||
<span class="in-band">List of all items</span></h1><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_no_seperator.html">to_text_no_seperator</a></li><li><a href="fn.to_text_with_seperator.html">to_text_with_seperator</a></li></ul></section><section id="search" class="content hidden"></section><section class="footer"></section><div id="rustdoc-vars" data-root-path="../" data-current-crate="ntext"></div>
|
<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>
|
||||||
<script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
|
||||||
@@ -1,6 +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="Convert digit to words in a string."><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">
|
<!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-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><div id="sidebar-vars" data-name="digit_to_text" data-ty="fn" data-relpath=""></div><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>
|
<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="in-band">Function <a href="index.html">ntext</a>::<wbr><a class="fn" href="">digit_to_text</a></span><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#31-45" title="goto source code">[src]</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>) -> <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>
|
<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><div id="rustdoc-vars" data-root-path="../" data-current-crate="ntext"></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>
|
||||||
<script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<!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="Convert u32 to words in a string."><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 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><div id="sidebar-vars" data-name="to_text" data-ty="fn" data-relpath=""></div><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="in-band">Function <a href="index.html">ntext</a>::<wbr><a class="fn" href="">to_text</a></span><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#92-123" title="goto source code">[src]</a></span></h1><pre class="rust fn">pub fn to_text(number: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</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 u32 to words in a string.</p>
|
|
||||||
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><div id="rustdoc-vars" data-root-path="../" data-current-crate="ntext"></div>
|
|
||||||
<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>
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<!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="Convert u32 to words in a string."><meta name="keywords" content="rust, rustlang, rust-lang, to_text_no_seperator"><title>ntext::to_text_no_seperator - 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><div id="sidebar-vars" data-name="to_text_no_seperator" data-ty="fn" data-relpath=""></div><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="in-band">Function <a href="index.html">ntext</a>::<wbr><a class="fn" href="">to_text_no_seperator</a></span><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/no_seperator.rs.html#41-71" title="goto source code">[src]</a></span></h1><pre class="rust fn">pub fn to_text_no_seperator(number: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</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 u32 to words in a string.</p>
|
|
||||||
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><div id="rustdoc-vars" data-root-path="../" data-current-crate="ntext"></div>
|
|
||||||
<script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<!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="Convert u32 to words in a string seperated by a seperator."><meta name="keywords" content="rust, rustlang, rust-lang, to_text_with_seperator"><title>ntext::to_text_with_seperator - 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><div id="sidebar-vars" data-name="to_text_with_seperator" data-ty="fn" data-relpath=""></div><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="in-band">Function <a href="index.html">ntext</a>::<wbr><a class="fn" href="">to_text_with_seperator</a></span><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/seperator.rs.html#44-86" title="goto source code">[src]</a></span></h1><pre class="rust fn">pub fn to_text_with_seperator(number: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>, seperator: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</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 u32 to words in a string seperated by a seperator.</p>
|
|
||||||
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><div id="rustdoc-vars" data-root-path="../" data-current-crate="ntext"></div>
|
|
||||||
<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>
|
||||||
+21
-21
@@ -1,32 +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=""><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">
|
<!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-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.1.2</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="#functions">Functions</a></li></ul></div><p class="location"></p><div id="sidebar-vars" data-name="ntext" data-ty="mod" data-relpath="../"></div></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>
|
<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="in-band">Crate <a class="mod" href="">ntext</a></span><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-74" title="goto source code">[src]</a></span></h1><div class="docblock">
|
<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">digit_to_text</span>;
|
|
||||||
<span class="kw">fn</span> <span class="ident">main</span>() {
|
|
||||||
<span class="macro">println</span><span class="macro">!</span>(<span class="string">"{}"</span>,<span class="ident">digit_to_text</span>(<span class="number">1</span>).<span class="ident">unwrap</span>());
|
|
||||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="string">"two"</span>,<span class="ident">digit_to_text</span>(<span class="number">2</span>).<span class="ident">unwrap</span>());
|
|
||||||
<span class="macro">assert_ne</span><span class="macro">!</span>(<span class="string">"five"</span>,<span class="ident">digit_to_text</span>(<span class="number">8</span>).<span class="ident">unwrap</span>());
|
|
||||||
}</pre></div>
|
|
||||||
<p>However giving the program a zero will return an empty string.</p>
|
|
||||||
|
|
||||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
<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">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">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="kw">fn</span> <span class="ident">main</span>() {
|
||||||
<span class="macro">println</span><span class="macro">!</span>(<span class="string">"{}"</span>,<span class="macro">to_text</span><span class="macro">!</span>(<span class="number">1312</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">1312</span>),<span class="string">"onethousandthreehundredtwelve"</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>);
|
||||||
<span class="macro">println</span><span class="macro">!</span>(<span class="string">"{}"</span>,<span class="macro">to_text</span><span class="macro">!</span>(<span class="number">7123</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">" "</span>),<span class="string">"seven thousand one hundred twenty three"</span>);
|
|
||||||
}</pre></div>
|
}</pre></div>
|
||||||
<p>This macro will also return an empty string on input zero</p>
|
<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>
|
</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>
|
<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>
|
</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>
|
<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_no_seperator.html" title="ntext::to_text_no_seperator fn">to_text_no_seperator</a></td><td class="docblock-short"><p>Convert u32 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><tr class="module-item"><td><a class="fn" href="fn.to_text_with_seperator.html" title="ntext::to_text_with_seperator fn">to_text_with_seperator</a></td><td class="docblock-short"><p>Convert u32 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>
|
||||||
</td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><div id="rustdoc-vars" data-root-path="../" data-current-crate="ntext"></div>
|
|
||||||
<script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
|
||||||
@@ -1,11 +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="Macro which supports both seperator and without it"><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">
|
<!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-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><div id="sidebar-vars" data-name="to_text" data-ty="macro" data-relpath=""></div><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>
|
<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="in-band">Macro <a href="index.html">ntext</a>::<wbr><a class="macro" href="">to_text</a></span><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#67-74" title="goto source code">[src]</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><div class="example-wrap"><pre class="rust macro">
|
<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">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="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">seperator</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>
|
}</pre></div>
|
||||||
</div><div class="docblock"><p>Macro which supports both seperator and without it</p>
|
</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><div id="rustdoc-vars" data-root-path="../" data-current-crate="ntext"></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>
|
||||||
<script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="refresh" content="0;URL=../../ntext/fn.to_text_no_seperator.html">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<p>Redirecting to <a href="../../ntext/fn.to_text_no_seperator.html">../../ntext/fn.to_text_no_seperator.html</a>...</p>
|
|
||||||
<script>location.replace("../../ntext/fn.to_text_no_seperator.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.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>
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="refresh" content="0;URL=../../ntext/fn.to_text_with_seperator.html">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<p>Redirecting to <a href="../../ntext/fn.to_text_with_seperator.html">../../ntext/fn.to_text_with_seperator.html</a>...</p>
|
|
||||||
<script>location.replace("../../ntext/fn.to_text_with_seperator.html" + location.search + location.hash);</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1 +1 @@
|
|||||||
initSidebarItems({"fn":[["digit_to_text","Convert digit to words in a string."],["to_text_no_seperator","Convert u32 to words in a string."],["to_text_with_seperator","Convert u32 to words in a string seperated by a seperator."]],"macro":[["to_text","Macro which supports both seperator and without it"]]});
|
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>
|
||||||
+1
-1
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
|||||||
var searchIndex = JSON.parse('{\
|
var searchIndex = JSON.parse('{\
|
||||||
"ntext":{"doc":"","i":[[5,"to_text_no_seperator","ntext","Convert u32 to words in a string.",null,[[["u32",15]],["string",3]]],[5,"to_text_with_seperator","","Convert u32 to words in a string seperated by a seperator.",null,[[["u32",15],["str",15]],["string",3]]],[5,"digit_to_text","","Convert digit to words in a string.",null,[[["u8",15]],[["option",4],["string",3]]]],[14,"to_text","","Macro which supports both seperator and without it",null,null]],"p":[]}\
|
"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);
|
addSearchOptions(searchIndex);initSearch(searchIndex);
|
||||||
+1
-2
@@ -3,5 +3,4 @@
|
|||||||
<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>
|
<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>
|
<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"><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><div id="rustdoc-vars" data-root-path="./" data-current-crate="ntext"></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>
|
||||||
<script src="./main.js"></script><script defer src="./search-index.js"></script></body></html>
|
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
var N = null;var sourcesIndex = {};
|
var N = null;var sourcesIndex = {};
|
||||||
sourcesIndex["ntext"] = {"name":"","files":["lib.rs","no_seperator.rs","seperator.rs","test.rs"]};
|
sourcesIndex["ntext"] = {"name":"","files":["formatting.rs","lib.rs","numtext.rs","test.rs"]};
|
||||||
createSourceSidebar();
|
createSourceSidebar();
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
function getCurrentFilePath(){var parts=window.location.pathname.split("/");var rootPathParts=window.rootPath.split("/");for(var i=0,len=rootPathParts.length;i<len;++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 i,len;var children=document.createElement("div");children.className="children";var folders=document.createElement("div");folders.className="folders";if(elem.dirs){for(i=0,len=elem.dirs.length;i<len;++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,len=elem.files.length;i<len;++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()}}
|
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>
|
||||||
+24
-93
@@ -41,115 +41,46 @@
|
|||||||
<span id="38">38</span>
|
<span id="38">38</span>
|
||||||
<span id="39">39</span>
|
<span id="39">39</span>
|
||||||
<span id="40">40</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>
|
|
||||||
</pre><div class="example-wrap"><pre class="rust ">
|
</pre><div class="example-wrap"><pre class="rust ">
|
||||||
<span class="doccomment">//!```rust</span>
|
<span class="doccomment">//! Example program with default formatting </span>
|
||||||
<span class="doccomment">//!extern crate ntext;</span>
|
|
||||||
<span class="doccomment">//!use ntext::digit_to_text;</span>
|
|
||||||
<span class="doccomment">//!fn main() {</span>
|
|
||||||
<span class="doccomment">//! println!("{}",digit_to_text(1).unwrap());</span>
|
|
||||||
<span class="doccomment">//! assert_eq!("two",digit_to_text(2).unwrap());</span>
|
|
||||||
<span class="doccomment">//! assert_ne!("five",digit_to_text(8).unwrap());</span>
|
|
||||||
<span class="doccomment">//!}</span>
|
|
||||||
<span class="doccomment">//!```</span>
|
|
||||||
<span class="doccomment">//! However giving the program a zero will return an empty string.</span>
|
|
||||||
<span class="doccomment">//!</span>
|
|
||||||
<span class="doccomment">//!```rust</span>
|
<span class="doccomment">//!```rust</span>
|
||||||
<span class="doccomment">//!extern crate ntext;</span>
|
<span class="doccomment">//!extern crate ntext;</span>
|
||||||
<span class="doccomment">//!use ntext::to_text;</span>
|
<span class="doccomment">//!use ntext::to_text;</span>
|
||||||
<span class="doccomment">//!fn main() {</span>
|
<span class="doccomment">//!fn main() {</span>
|
||||||
<span class="doccomment">//! println!("{}",to_text!(1312));</span>
|
<span class="doccomment">//! assert_eq!(to_text!(7123),"Seven Thousand,One Hundred,Twenty-Three");</span>
|
||||||
<span class="doccomment">//! assert_eq!(to_text!(1312),"onethousandthreehundredtwelve");</span>
|
<span class="doccomment">//! assert_eq!(to_text!(1000),"One Thousand");</span>
|
||||||
<span class="doccomment">//! println!("{}",to_text!(7123));</span>
|
|
||||||
<span class="doccomment">//! assert_eq!(to_text!(7123," "),"seven thousand one hundred twenty three");</span>
|
|
||||||
<span class="doccomment">//!}</span>
|
<span class="doccomment">//!}</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">//! 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">no_seperator</span>;
|
<span class="kw">mod</span> <span class="ident">formatting</span>;
|
||||||
<span class="kw">mod</span> <span class="ident">seperator</span>;
|
<span class="kw">mod</span> <span class="ident">numtext</span>;
|
||||||
<span class="kw">mod</span> <span class="ident">test</span>;
|
<span class="kw">mod</span> <span class="ident">test</span>;
|
||||||
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">no_seperator</span>::<span class="ident">to_text_no_seperator</span>;
|
|
||||||
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">seperator</span>::<span class="ident">to_text_with_seperator</span>;
|
|
||||||
|
|
||||||
<span class="doccomment">/// Convert digit to words in a string.</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">fn</span> <span class="ident">digit_to_text</span>(<span class="ident">digit</span>: <span class="ident">u8</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">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="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">seperator</span>: <span class="prelude-ty">Option</span><span class="op"><</span><span class="kw-2">&</span><span class="ident">str</span><span class="op">></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">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">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="ident">buffer</span>.<span class="ident">push_str</span>(<span class="ident">sep</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="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="kw">_</span> <span class="op">=</span><span class="op">></span> (),
|
|
||||||
};
|
|
||||||
<span class="prelude-val">Some</span>(<span class="ident">buffer</span>)
|
|
||||||
}
|
|
||||||
|
|
||||||
<span class="doccomment">/// Macro which supports both seperator and without it</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="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">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="op">=</span><span class="op">></span> {
|
||||||
<span class="ident">ntext</span>::<span class="ident">to_text_no_seperator</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">number</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">seperator</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> {
|
||||||
<span class="ident">ntext</span>::<span class="ident">to_text_with_seperator</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">number</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">seperator</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>
|
</pre></div>
|
||||||
</section><section id="search" class="content hidden"></section><section class="footer"></section><div id="rustdoc-vars" data-root-path="../../" data-current-crate="ntext"></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>
|
||||||
<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>
|
|
||||||
@@ -1,149 +0,0 @@
|
|||||||
<!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/no_seperator.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>no_seperator.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>
|
|
||||||
</pre><div class="example-wrap"><pre class="rust ">
|
|
||||||
<span class="kw">use</span> <span class="kw">crate</span>::{<span class="ident">digit_to_text</span>, <span class="ident">place_value</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="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="number">1</span> <span class="op">=</span><span class="op">></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">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="ident">buffer</span>.<span class="ident">push_str</span>(<span class="ident">digit_to_text</span>(<span class="ident">ones</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">string</span> <span class="op">=</span> <span class="ident">digit_to_text</span>(<span class="ident">d</span>).<span class="ident">unwrap</span>() <span class="op">+</span> <span class="string">"ty"</span>;
|
|
||||||
<span class="ident">string</span>.<span class="ident">push_str</span>(<span class="ident">digit_to_text</span>(<span class="ident">ones</span>).<span class="ident">unwrap</span>().<span class="ident">as_str</span>());
|
|
||||||
<span class="ident">string</span>
|
|
||||||
}),
|
|
||||||
<span class="kw">_</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">None</span>,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
<span class="doccomment">/// Convert u32 to words in a string.</span>
|
|
||||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">to_text_no_seperator</span>(<span class="ident">number</span>: <span class="ident">u32</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">2</span>] <span class="op">=</span> [<span class="number">2</span>, <span class="number">5</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">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">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="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="prelude-val">None</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="prelude-val">None</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><div id="rustdoc-vars" data-root-path="../../" data-current-crate="ntext"></div>
|
|
||||||
<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>
|
||||||
@@ -1,179 +0,0 @@
|
|||||||
<!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/seperator.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>seperator.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>
|
|
||||||
</pre><div class="example-wrap"><pre class="rust ">
|
|
||||||
<span class="kw">use</span> <span class="kw">crate</span>::{<span class="ident">digit_to_text</span>, <span class="ident">place_value</span>};
|
|
||||||
|
|
||||||
<span class="kw">fn</span> <span class="ident">tens_place_seperator</span>(<span class="ident">tens</span>: <span class="ident">u8</span>, <span class="ident">ones</span>: <span class="ident">u8</span>, <span class="ident">seperator</span>: <span class="kw-2">&</span><span class="ident">str</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="number">1</span> <span class="op">=</span><span class="op">></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">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="ident">buffer</span>.<span class="ident">push_str</span>(<span class="ident">seperator</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">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">unwrap</span>() <span class="op">+</span> <span class="string">"ty"</span>;
|
|
||||||
<span class="ident">buffer</span>.<span class="ident">push_str</span>(<span class="ident">seperator</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">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 u32 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_with_seperator</span>(<span class="ident">number</span>: <span class="ident">u32</span>, <span class="ident">seperator</span>: <span class="kw-2">&</span><span class="ident">str</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">2</span>] <span class="op">=</span> [<span class="number">2</span>, <span class="number">5</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="ident">numtext</span>.<span class="ident">push_str</span>(<span class="ident">seperator</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_seperator</span>(<span class="ident">last_digit</span>, <span class="kw-2">*</span><span class="ident">digit</span>, <span class="ident">seperator</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="ident">numtext</span>.<span class="ident">push_str</span>(<span class="ident">seperator</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="prelude-val">Some</span>(<span class="ident">seperator</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="prelude-val">Some</span>(<span class="ident">seperator</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><div id="rustdoc-vars" data-root-path="../../" data-current-crate="ntext"></div>
|
|
||||||
<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>
|
|
||||||
+37
-24
@@ -37,43 +37,56 @@
|
|||||||
<span id="34">34</span>
|
<span id="34">34</span>
|
||||||
<span id="35">35</span>
|
<span id="35">35</span>
|
||||||
<span id="36">36</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 ">
|
</pre><div class="example-wrap"><pre class="rust ">
|
||||||
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
|
<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="kw">mod</span> <span class="ident">tests</span> {
|
||||||
<span class="attribute">#[<span class="ident">test</span>]</span>
|
<span class="attribute">#[<span class="ident">test</span>]</span>
|
||||||
<span class="kw">fn</span> <span class="ident">digits</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="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="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">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="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">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="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">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="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">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="attribute">#[<span class="ident">test</span>]</span>
|
||||||
<span class="kw">fn</span> <span class="ident">numbers</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_no_seperator</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">to_text_fmt</span> <span class="kw">as</span> <span class="ident">to_text</span>;
|
||||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">to_text</span>(<span class="number">1</span>), <span class="string">"one"</span>);
|
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">Formatting</span>;
|
||||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">to_text</span>(<span class="number">10</span>), <span class="string">"ten"</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">100</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">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">1000</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">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">12345</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">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">81123</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">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">12</span>), <span class="string">"twelve"</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="attribute">#[<span class="ident">test</span>]</span>
|
||||||
<span class="kw">fn</span> <span class="ident">numbers_seperator</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_with_seperator</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">to_text_fmt</span> <span class="kw">as</span> <span class="ident">to_text</span>;
|
||||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">to_text</span>(<span class="number">103</span>, <span class="string">"/"</span>), <span class="string">"one/hundred/three"</span>);
|
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">Formatting</span>;
|
||||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">to_text</span>(<span class="number">1000</span>, <span class="string">"/"</span>), <span class="string">"one/thousand"</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="macro">assert_eq</span><span class="macro">!</span>(
|
||||||
<span class="ident">to_text</span>(<span class="number">12345</span>, <span class="string">"/"</span>),
|
<span class="ident">to_text</span>(<span class="number">1235245</span>, <span class="ident">fmt</span>),
|
||||||
<span class="string">"twelve/thousand/three/hundred/forty/five"</span>
|
<span class="string">"Twelve Million,Thirty-Five Thousand,Two Hundred,Forty-Five"</span>
|
||||||
);
|
|
||||||
<span class="macro">assert_eq</span><span class="macro">!</span>(
|
|
||||||
<span class="ident">to_text</span>(<span class="number">651243</span>, <span class="string">"/"</span>),
|
|
||||||
<span class="string">"six/million/fifty/one/thousand/two/hundred/forty/three"</span>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</section><section id="search" class="content hidden"></section><section class="footer"></section><div id="rustdoc-vars" data-root-path="../../" data-current-crate="ntext"></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>
|
||||||
<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>
|
|
||||||
+1
-1
@@ -1 +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 updateLocalStorage(name,value){try{window.localStorage.setItem(name,value)}catch(e){}}function getCurrentValue(name){try{return window.localStorage.getItem(name)}catch(e){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(){var 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)}
|
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)}
|
||||||
+10
@@ -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>
|
||||||
-74
@@ -1,74 +0,0 @@
|
|||||||
//!```rust
|
|
||||||
//!extern crate ntext;
|
|
||||||
//!use ntext::digit_to_text;
|
|
||||||
//!fn main() {
|
|
||||||
//! println!("{}",digit_to_text(1).unwrap());
|
|
||||||
//! assert_eq!("two",digit_to_text(2).unwrap());
|
|
||||||
//! assert_ne!("five",digit_to_text(8).unwrap());
|
|
||||||
//!}
|
|
||||||
//!```
|
|
||||||
//! However giving the program a zero will return an empty string.
|
|
||||||
//!
|
|
||||||
//!```rust
|
|
||||||
//!extern crate ntext;
|
|
||||||
//!use ntext::to_text;
|
|
||||||
//!fn main() {
|
|
||||||
//! println!("{}",to_text!(1312));
|
|
||||||
//! assert_eq!(to_text!(1312),"onethousandthreehundredtwelve");
|
|
||||||
//! println!("{}",to_text!(7123));
|
|
||||||
//! assert_eq!(to_text!(7123," "),"seven thousand one hundred twenty three");
|
|
||||||
//!}
|
|
||||||
//!```
|
|
||||||
//! This macro will also return an empty string on input zero
|
|
||||||
|
|
||||||
mod no_seperator;
|
|
||||||
mod seperator;
|
|
||||||
mod test;
|
|
||||||
pub use no_seperator::to_text_no_seperator;
|
|
||||||
pub use seperator::to_text_with_seperator;
|
|
||||||
|
|
||||||
/// Convert digit to words in a string.
|
|
||||||
pub fn digit_to_text(digit: u8) -> Option<String> {
|
|
||||||
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, seperator: Option<&str>) -> Option<String> {
|
|
||||||
let mut buffer = digit_to_text(number).unwrap();
|
|
||||||
if let Some(sep) = seperator {
|
|
||||||
if number != 0 {
|
|
||||||
buffer.push_str(sep)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
match place {
|
|
||||||
1 => (),
|
|
||||||
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"),
|
|
||||||
_ => (),
|
|
||||||
};
|
|
||||||
Some(buffer)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Macro which supports both seperator and without it
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! to_text {
|
|
||||||
($number:expr) => {
|
|
||||||
ntext::to_text_no_seperator($number);
|
|
||||||
};
|
|
||||||
($number:expr, $seperator:expr) => {
|
|
||||||
ntext::to_text_with_seperator($number, $seperator);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
use crate::{digit_to_text, place_value};
|
|
||||||
fn tens_place(tens: u8, ones: u8) -> Option<String> {
|
|
||||||
match tens {
|
|
||||||
0 => digit_to_text(ones),
|
|
||||||
1 => 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();
|
|
||||||
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"),
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
buffer.push_str(digit_to_text(ones).unwrap().as_str());
|
|
||||||
buffer
|
|
||||||
}),
|
|
||||||
d @ 6..=9 => Some({
|
|
||||||
let mut string = digit_to_text(d).unwrap() + "ty";
|
|
||||||
string.push_str(digit_to_text(ones).unwrap().as_str());
|
|
||||||
string
|
|
||||||
}),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Convert u32 to words in a string.
|
|
||||||
pub fn to_text_no_seperator(number: u32) -> String {
|
|
||||||
let mut numtext: String = String::new();
|
|
||||||
let mut last: Option<u8> = None;
|
|
||||||
let tens_place_holders: [u8; 2] = [2, 5];
|
|
||||||
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 let Some(last_digit) = last {
|
|
||||||
numtext.push_str(tens_place(last_digit, *digit).unwrap().as_str());
|
|
||||||
if place > 2 {
|
|
||||||
numtext.push_str(place_value(0, place, None).unwrap().as_str());
|
|
||||||
}
|
|
||||||
last = None;
|
|
||||||
} else if *digit != 0 {
|
|
||||||
numtext.push_str(place_value(*digit, place, None).unwrap().as_str())
|
|
||||||
}
|
|
||||||
place -= 1;
|
|
||||||
}
|
|
||||||
numtext
|
|
||||||
}
|
|
||||||
@@ -1,86 +0,0 @@
|
|||||||
use crate::{digit_to_text, place_value};
|
|
||||||
|
|
||||||
fn tens_place_seperator(tens: u8, ones: u8, seperator: &str) -> Option<String> {
|
|
||||||
match tens {
|
|
||||||
0 => digit_to_text(ones),
|
|
||||||
1 => 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();
|
|
||||||
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"),
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
buffer.push_str(seperator);
|
|
||||||
buffer.push_str(digit_to_text(ones).unwrap().as_str());
|
|
||||||
buffer
|
|
||||||
}),
|
|
||||||
d @ 6..=9 => Some({
|
|
||||||
let mut buffer = digit_to_text(d).unwrap() + "ty";
|
|
||||||
buffer.push_str(seperator);
|
|
||||||
buffer.push_str(digit_to_text(ones).unwrap().as_str());
|
|
||||||
buffer
|
|
||||||
}),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Convert u32 to words in a string seperated by a seperator.
|
|
||||||
pub fn to_text_with_seperator(number: u32, seperator: &str) -> String {
|
|
||||||
let mut numtext: String = String::new();
|
|
||||||
let mut last: Option<u8> = None;
|
|
||||||
let tens_place_holders: [u8; 2] = [2, 5];
|
|
||||||
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 != "" {
|
|
||||||
numtext.push_str(seperator);
|
|
||||||
}
|
|
||||||
if let Some(last_digit) = last {
|
|
||||||
numtext.push_str(
|
|
||||||
tens_place_seperator(last_digit, *digit, seperator)
|
|
||||||
.unwrap()
|
|
||||||
.as_str(),
|
|
||||||
);
|
|
||||||
if place > 2 {
|
|
||||||
numtext.push_str(seperator);
|
|
||||||
numtext.push_str(place_value(0, place, Some(seperator)).unwrap().as_str());
|
|
||||||
}
|
|
||||||
last = None;
|
|
||||||
} else if *digit != 0 {
|
|
||||||
numtext.push_str(
|
|
||||||
place_value(*digit, place, Some(seperator))
|
|
||||||
.unwrap()
|
|
||||||
.as_str(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
place -= 1;
|
|
||||||
}
|
|
||||||
numtext
|
|
||||||
}
|
|
||||||
-36
@@ -1,36 +0,0 @@
|
|||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
#[test]
|
|
||||||
fn digits() {
|
|
||||||
use crate::digit_to_text;
|
|
||||||
assert_eq!(digit_to_text(9).unwrap(), "nine");
|
|
||||||
assert_eq!(digit_to_text(3).unwrap(), "three");
|
|
||||||
assert_eq!(digit_to_text(7).unwrap(), "seven");
|
|
||||||
assert_eq!(digit_to_text(5).unwrap(), "five");
|
|
||||||
}
|
|
||||||
#[test]
|
|
||||||
fn numbers() {
|
|
||||||
use crate::to_text_no_seperator as to_text;
|
|
||||||
assert_eq!(to_text(1), "one");
|
|
||||||
assert_eq!(to_text(10), "ten");
|
|
||||||
assert_eq!(to_text(100), "onehundred");
|
|
||||||
assert_eq!(to_text(1000), "onethousand");
|
|
||||||
assert_eq!(to_text(12345), "twelvethousandthreehundredfortyfive");
|
|
||||||
assert_eq!(to_text(81123), "eightyonethousandonehundredtwentythree");
|
|
||||||
assert_eq!(to_text(12), "twelve");
|
|
||||||
}
|
|
||||||
#[test]
|
|
||||||
fn numbers_seperator() {
|
|
||||||
use crate::to_text_with_seperator as to_text;
|
|
||||||
assert_eq!(to_text(103, "/"), "one/hundred/three");
|
|
||||||
assert_eq!(to_text(1000, "/"), "one/thousand");
|
|
||||||
assert_eq!(
|
|
||||||
to_text(12345, "/"),
|
|
||||||
"twelve/thousand/three/hundred/forty/five"
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
to_text(651243, "/"),
|
|
||||||
"six/million/fifty/one/thousand/two/hundred/forty/three"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user