Joshua Rutschmann преди 8 години
родител
ревизия
104a0ae155
променени са 27 файла, в които са добавени 4127 реда и са изтрити 0 реда
  1. 0
    0
      hw5/task1/target/doc/.lock
  2. 59
    0
      hw5/task1/target/doc/COPYRIGHT.txt
  3. 99
    0
      hw5/task1/target/doc/FiraSans-LICENSE.txt
  4. Двоични данни
      hw5/task1/target/doc/FiraSans-Medium.woff
  5. Двоични данни
      hw5/task1/target/doc/FiraSans-Regular.woff
  6. Двоични данни
      hw5/task1/target/doc/Heuristica-Italic.woff
  7. 101
    0
      hw5/task1/target/doc/Heuristica-LICENSE.txt
  8. 201
    0
      hw5/task1/target/doc/LICENSE-APACHE.txt
  9. 23
    0
      hw5/task1/target/doc/LICENSE-MIT.txt
  10. 93
    0
      hw5/task1/target/doc/SourceCodePro-LICENSE.txt
  11. Двоични данни
      hw5/task1/target/doc/SourceCodePro-Regular.woff
  12. Двоични данни
      hw5/task1/target/doc/SourceCodePro-Semibold.woff
  13. Двоични данни
      hw5/task1/target/doc/SourceSerifPro-Bold.woff
  14. 93
    0
      hw5/task1/target/doc/SourceSerifPro-LICENSE.txt
  15. Двоични данни
      hw5/task1/target/doc/SourceSerifPro-Regular.woff
  16. 205
    0
      hw5/task1/target/doc/main.css
  17. 1304
    0
      hw5/task1/target/doc/main.js
  18. 1
    0
      hw5/task1/target/doc/normalize.css
  19. 806
    0
      hw5/task1/target/doc/rustdoc.css
  20. 3
    0
      hw5/task1/target/doc/search-index.js
  21. 234
    0
      hw5/task1/target/doc/src/task1/child/mod.rs.html
  22. 292
    0
      hw5/task1/target/doc/src/task1/child/pstree.rs.html
  23. 170
    0
      hw5/task1/target/doc/src/task1/main.rs.html
  24. 162
    0
      hw5/task1/target/doc/src/task1/unit_tests.rs.html
  25. 168
    0
      hw5/task1/target/doc/src/task1/zombie/mod.rs.html
  26. 112
    0
      hw5/task1/target/doc/task1/index.html
  27. 1
    0
      hw5/task1/target/doc/task1/sidebar-items.js

+ 0
- 0
hw5/task1/target/doc/.lock Целия файл


+ 59
- 0
hw5/task1/target/doc/COPYRIGHT.txt Целия файл

@@ -0,0 +1,59 @@
1
+These documentation pages include resources by third parties. This copyright
2
+file applies only to those resources. The following third party resources are
3
+included, and carry their own copyright notices and license terms:
4
+
5
+* Fira Sans (FiraSans-Regular.woff, FiraSans-Medium.woff):
6
+
7
+    Copyright (c) 2014, Mozilla Foundation https://mozilla.org/
8
+    with Reserved Font Name Fira Sans.
9
+
10
+    Copyright (c) 2014, Telefonica S.A.
11
+
12
+    Licensed under the SIL Open Font License, Version 1.1.
13
+    See FiraSans-LICENSE.txt.
14
+
15
+* Heuristica (Heuristica-Italic.woff):
16
+
17
+    Copyright 1989, 1991 Adobe Systems Incorporated. All rights reserved.
18
+    Utopia is either a registered trademark or trademark of Adobe Systems
19
+    Incorporated in the United States and/or other countries. Used under
20
+    license.
21
+
22
+    Copyright 2006 Han The Thanh, Vntopia font family, http://vntex.sf.net
23
+
24
+    Copyright (c) 2008-2012, Andrey V. Panov (panov@canopus.iacp.dvo.ru),
25
+    with Reserved Font Name Heuristica.
26
+
27
+    Licensed under the SIL Open Font License, Version 1.1.
28
+    See Heuristica-LICENSE.txt.
29
+
30
+* rustdoc.css, main.js, and playpen.js:
31
+
32
+    Copyright 2015 The Rust Developers.
33
+    Licensed under the Apache License, Version 2.0 (see LICENSE-APACHE.txt) or
34
+    the MIT license (LICENSE-MIT.txt) at your option.
35
+
36
+* normalize.css:
37
+
38
+    Copyright (c) Nicolas Gallagher and Jonathan Neal.
39
+    Licensed under the MIT license (see LICENSE-MIT.txt).
40
+
41
+* Source Code Pro (SourceCodePro-Regular.woff, SourceCodePro-Semibold.woff):
42
+
43
+    Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/),
44
+    with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark
45
+    of Adobe Systems Incorporated in the United States and/or other countries.
46
+
47
+    Licensed under the SIL Open Font License, Version 1.1.
48
+    See SourceCodePro-LICENSE.txt.
49
+
50
+* Source Serif Pro (SourceSerifPro-Regular.woff, SourceSerifPro-Bold.woff):
51
+
52
+    Copyright 2014 Adobe Systems Incorporated (http://www.adobe.com/), with
53
+    Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of
54
+    Adobe Systems Incorporated in the United States and/or other countries.
55
+
56
+    Licensed under the SIL Open Font License, Version 1.1.
57
+    See SourceSerifPro-LICENSE.txt.
58
+
59
+This copyright file is intended to be distributed with rustdoc output.

+ 99
- 0
hw5/task1/target/doc/FiraSans-LICENSE.txt Целия файл

@@ -0,0 +1,99 @@
1
+Copyright (c) 2014, Mozilla Foundation https://mozilla.org/
2
+with Reserved Font Name Fira Sans.
3
+
4
+Copyright (c) 2014, Mozilla Foundation https://mozilla.org/
5
+with Reserved Font Name Fira Mono.
6
+
7
+Copyright (c) 2014, Telefonica S.A.
8
+
9
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
10
+This license is copied below, and is also available with a FAQ at:
11
+http://scripts.sil.org/OFL
12
+
13
+
14
+-----------------------------------------------------------
15
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
16
+-----------------------------------------------------------
17
+
18
+PREAMBLE
19
+The goals of the Open Font License (OFL) are to stimulate worldwide
20
+development of collaborative font projects, to support the font creation
21
+efforts of academic and linguistic communities, and to provide a free and
22
+open framework in which fonts may be shared and improved in partnership
23
+with others.
24
+
25
+The OFL allows the licensed fonts to be used, studied, modified and
26
+redistributed freely as long as they are not sold by themselves. The
27
+fonts, including any derivative works, can be bundled, embedded,
28
+redistributed and/or sold with any software provided that any reserved
29
+names are not used by derivative works. The fonts and derivatives,
30
+however, cannot be released under any other type of license. The
31
+requirement for fonts to remain under this license does not apply
32
+to any document created using the fonts or their derivatives.
33
+
34
+DEFINITIONS
35
+"Font Software" refers to the set of files released by the Copyright
36
+Holder(s) under this license and clearly marked as such. This may
37
+include source files, build scripts and documentation.
38
+
39
+"Reserved Font Name" refers to any names specified as such after the
40
+copyright statement(s).
41
+
42
+"Original Version" refers to the collection of Font Software components as
43
+distributed by the Copyright Holder(s).
44
+
45
+"Modified Version" refers to any derivative made by adding to, deleting,
46
+or substituting -- in part or in whole -- any of the components of the
47
+Original Version, by changing formats or by porting the Font Software to a
48
+new environment.
49
+
50
+"Author" refers to any designer, engineer, programmer, technical
51
+writer or other person who contributed to the Font Software.
52
+
53
+PERMISSION & CONDITIONS
54
+Permission is hereby granted, free of charge, to any person obtaining
55
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
56
+redistribute, and sell modified and unmodified copies of the Font
57
+Software, subject to the following conditions:
58
+
59
+1) Neither the Font Software nor any of its individual components,
60
+in Original or Modified Versions, may be sold by itself.
61
+
62
+2) Original or Modified Versions of the Font Software may be bundled,
63
+redistributed and/or sold with any software, provided that each copy
64
+contains the above copyright notice and this license. These can be
65
+included either as stand-alone text files, human-readable headers or
66
+in the appropriate machine-readable metadata fields within text or
67
+binary files as long as those fields can be easily viewed by the user.
68
+
69
+3) No Modified Version of the Font Software may use the Reserved Font
70
+Name(s) unless explicit written permission is granted by the corresponding
71
+Copyright Holder. This restriction only applies to the primary font name as
72
+presented to the users.
73
+
74
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
75
+Software shall not be used to promote, endorse or advertise any
76
+Modified Version, except to acknowledge the contribution(s) of the
77
+Copyright Holder(s) and the Author(s) or with their explicit written
78
+permission.
79
+
80
+5) The Font Software, modified or unmodified, in part or in whole,
81
+must be distributed entirely under this license, and must not be
82
+distributed under any other license. The requirement for fonts to
83
+remain under this license does not apply to any document created
84
+using the Font Software.
85
+
86
+TERMINATION
87
+This license becomes null and void if any of the above conditions are
88
+not met.
89
+
90
+DISCLAIMER
91
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
92
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
93
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
94
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
95
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
96
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
97
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
98
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
99
+OTHER DEALINGS IN THE FONT SOFTWARE.

Двоични данни
hw5/task1/target/doc/FiraSans-Medium.woff Целия файл


Двоични данни
hw5/task1/target/doc/FiraSans-Regular.woff Целия файл


Двоични данни
hw5/task1/target/doc/Heuristica-Italic.woff Целия файл


+ 101
- 0
hw5/task1/target/doc/Heuristica-LICENSE.txt Целия файл

@@ -0,0 +1,101 @@
1
+Copyright 1989, 1991 Adobe Systems Incorporated. All rights reserved.
2
+Utopia is either a registered trademark or trademark of Adobe Systems
3
+Incorporated in the United States and/or other countries. Used under
4
+license.
5
+
6
+Copyright 2006 Han The Thanh, Vntopia font family, http://vntex.sf.net
7
+
8
+Copyright (c) 2008-2012, Andrey V. Panov (panov@canopus.iacp.dvo.ru),
9
+with Reserved Font Name Heuristica.
10
+
11
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
12
+This license is copied below, and is also available with a FAQ at:
13
+http://scripts.sil.org/OFL
14
+
15
+
16
+-----------------------------------------------------------
17
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
18
+-----------------------------------------------------------
19
+
20
+PREAMBLE
21
+The goals of the Open Font License (OFL) are to stimulate worldwide
22
+development of collaborative font projects, to support the font creation
23
+efforts of academic and linguistic communities, and to provide a free and
24
+open framework in which fonts may be shared and improved in partnership
25
+with others.
26
+
27
+The OFL allows the licensed fonts to be used, studied, modified and
28
+redistributed freely as long as they are not sold by themselves. The
29
+fonts, including any derivative works, can be bundled, embedded,
30
+redistributed and/or sold with any software provided that any reserved
31
+names are not used by derivative works. The fonts and derivatives,
32
+however, cannot be released under any other type of license. The
33
+requirement for fonts to remain under this license does not apply
34
+to any document created using the fonts or their derivatives.
35
+
36
+DEFINITIONS
37
+"Font Software" refers to the set of files released by the Copyright
38
+Holder(s) under this license and clearly marked as such. This may
39
+include source files, build scripts and documentation.
40
+
41
+"Reserved Font Name" refers to any names specified as such after the
42
+copyright statement(s).
43
+
44
+"Original Version" refers to the collection of Font Software components as
45
+distributed by the Copyright Holder(s).
46
+
47
+"Modified Version" refers to any derivative made by adding to, deleting,
48
+or substituting -- in part or in whole -- any of the components of the
49
+Original Version, by changing formats or by porting the Font Software to a
50
+new environment.
51
+
52
+"Author" refers to any designer, engineer, programmer, technical
53
+writer or other person who contributed to the Font Software.
54
+
55
+PERMISSION & CONDITIONS
56
+Permission is hereby granted, free of charge, to any person obtaining
57
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
58
+redistribute, and sell modified and unmodified copies of the Font
59
+Software, subject to the following conditions:
60
+
61
+1) Neither the Font Software nor any of its individual components,
62
+in Original or Modified Versions, may be sold by itself.
63
+
64
+2) Original or Modified Versions of the Font Software may be bundled,
65
+redistributed and/or sold with any software, provided that each copy
66
+contains the above copyright notice and this license. These can be
67
+included either as stand-alone text files, human-readable headers or
68
+in the appropriate machine-readable metadata fields within text or
69
+binary files as long as those fields can be easily viewed by the user.
70
+
71
+3) No Modified Version of the Font Software may use the Reserved Font
72
+Name(s) unless explicit written permission is granted by the corresponding
73
+Copyright Holder. This restriction only applies to the primary font name as
74
+presented to the users.
75
+
76
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
77
+Software shall not be used to promote, endorse or advertise any
78
+Modified Version, except to acknowledge the contribution(s) of the
79
+Copyright Holder(s) and the Author(s) or with their explicit written
80
+permission.
81
+
82
+5) The Font Software, modified or unmodified, in part or in whole,
83
+must be distributed entirely under this license, and must not be
84
+distributed under any other license. The requirement for fonts to
85
+remain under this license does not apply to any document created
86
+using the Font Software.
87
+
88
+TERMINATION
89
+This license becomes null and void if any of the above conditions are
90
+not met.
91
+
92
+DISCLAIMER
93
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
94
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
95
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
96
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
97
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
98
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
99
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
100
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
101
+OTHER DEALINGS IN THE FONT SOFTWARE.

+ 201
- 0
hw5/task1/target/doc/LICENSE-APACHE.txt Целия файл

@@ -0,0 +1,201 @@
1
+                              Apache License
2
+                        Version 2.0, January 2004
3
+                     http://www.apache.org/licenses/
4
+
5
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+1. Definitions.
8
+
9
+   "License" shall mean the terms and conditions for use, reproduction,
10
+   and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+   "Licensor" shall mean the copyright owner or entity authorized by
13
+   the copyright owner that is granting the License.
14
+
15
+   "Legal Entity" shall mean the union of the acting entity and all
16
+   other entities that control, are controlled by, or are under common
17
+   control with that entity. For the purposes of this definition,
18
+   "control" means (i) the power, direct or indirect, to cause the
19
+   direction or management of such entity, whether by contract or
20
+   otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+   outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+   "You" (or "Your") shall mean an individual or Legal Entity
24
+   exercising permissions granted by this License.
25
+
26
+   "Source" form shall mean the preferred form for making modifications,
27
+   including but not limited to software source code, documentation
28
+   source, and configuration files.
29
+
30
+   "Object" form shall mean any form resulting from mechanical
31
+   transformation or translation of a Source form, including but
32
+   not limited to compiled object code, generated documentation,
33
+   and conversions to other media types.
34
+
35
+   "Work" shall mean the work of authorship, whether in Source or
36
+   Object form, made available under the License, as indicated by a
37
+   copyright notice that is included in or attached to the work
38
+   (an example is provided in the Appendix below).
39
+
40
+   "Derivative Works" shall mean any work, whether in Source or Object
41
+   form, that is based on (or derived from) the Work and for which the
42
+   editorial revisions, annotations, elaborations, or other modifications
43
+   represent, as a whole, an original work of authorship. For the purposes
44
+   of this License, Derivative Works shall not include works that remain
45
+   separable from, or merely link (or bind by name) to the interfaces of,
46
+   the Work and Derivative Works thereof.
47
+
48
+   "Contribution" shall mean any work of authorship, including
49
+   the original version of the Work and any modifications or additions
50
+   to that Work or Derivative Works thereof, that is intentionally
51
+   submitted to Licensor for inclusion in the Work by the copyright owner
52
+   or by an individual or Legal Entity authorized to submit on behalf of
53
+   the copyright owner. For the purposes of this definition, "submitted"
54
+   means any form of electronic, verbal, or written communication sent
55
+   to the Licensor or its representatives, including but not limited to
56
+   communication on electronic mailing lists, source code control systems,
57
+   and issue tracking systems that are managed by, or on behalf of, the
58
+   Licensor for the purpose of discussing and improving the Work, but
59
+   excluding communication that is conspicuously marked or otherwise
60
+   designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+   "Contributor" shall mean Licensor and any individual or Legal Entity
63
+   on behalf of whom a Contribution has been received by Licensor and
64
+   subsequently incorporated within the Work.
65
+
66
+2. Grant of Copyright License. Subject to the terms and conditions of
67
+   this License, each Contributor hereby grants to You a perpetual,
68
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+   copyright license to reproduce, prepare Derivative Works of,
70
+   publicly display, publicly perform, sublicense, and distribute the
71
+   Work and such Derivative Works in Source or Object form.
72
+
73
+3. Grant of Patent License. Subject to the terms and conditions of
74
+   this License, each Contributor hereby grants to You a perpetual,
75
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+   (except as stated in this section) patent license to make, have made,
77
+   use, offer to sell, sell, import, and otherwise transfer the Work,
78
+   where such license applies only to those patent claims licensable
79
+   by such Contributor that are necessarily infringed by their
80
+   Contribution(s) alone or by combination of their Contribution(s)
81
+   with the Work to which such Contribution(s) was submitted. If You
82
+   institute patent litigation against any entity (including a
83
+   cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+   or a Contribution incorporated within the Work constitutes direct
85
+   or contributory patent infringement, then any patent licenses
86
+   granted to You under this License for that Work shall terminate
87
+   as of the date such litigation is filed.
88
+
89
+4. Redistribution. You may reproduce and distribute copies of the
90
+   Work or Derivative Works thereof in any medium, with or without
91
+   modifications, and in Source or Object form, provided that You
92
+   meet the following conditions:
93
+
94
+   (a) You must give any other recipients of the Work or
95
+       Derivative Works a copy of this License; and
96
+
97
+   (b) You must cause any modified files to carry prominent notices
98
+       stating that You changed the files; and
99
+
100
+   (c) You must retain, in the Source form of any Derivative Works
101
+       that You distribute, all copyright, patent, trademark, and
102
+       attribution notices from the Source form of the Work,
103
+       excluding those notices that do not pertain to any part of
104
+       the Derivative Works; and
105
+
106
+   (d) If the Work includes a "NOTICE" text file as part of its
107
+       distribution, then any Derivative Works that You distribute must
108
+       include a readable copy of the attribution notices contained
109
+       within such NOTICE file, excluding those notices that do not
110
+       pertain to any part of the Derivative Works, in at least one
111
+       of the following places: within a NOTICE text file distributed
112
+       as part of the Derivative Works; within the Source form or
113
+       documentation, if provided along with the Derivative Works; or,
114
+       within a display generated by the Derivative Works, if and
115
+       wherever such third-party notices normally appear. The contents
116
+       of the NOTICE file are for informational purposes only and
117
+       do not modify the License. You may add Your own attribution
118
+       notices within Derivative Works that You distribute, alongside
119
+       or as an addendum to the NOTICE text from the Work, provided
120
+       that such additional attribution notices cannot be construed
121
+       as modifying the License.
122
+
123
+   You may add Your own copyright statement to Your modifications and
124
+   may provide additional or different license terms and conditions
125
+   for use, reproduction, or distribution of Your modifications, or
126
+   for any such Derivative Works as a whole, provided Your use,
127
+   reproduction, and distribution of the Work otherwise complies with
128
+   the conditions stated in this License.
129
+
130
+5. Submission of Contributions. Unless You explicitly state otherwise,
131
+   any Contribution intentionally submitted for inclusion in the Work
132
+   by You to the Licensor shall be under the terms and conditions of
133
+   this License, without any additional terms or conditions.
134
+   Notwithstanding the above, nothing herein shall supersede or modify
135
+   the terms of any separate license agreement you may have executed
136
+   with Licensor regarding such Contributions.
137
+
138
+6. Trademarks. This License does not grant permission to use the trade
139
+   names, trademarks, service marks, or product names of the Licensor,
140
+   except as required for reasonable and customary use in describing the
141
+   origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+7. Disclaimer of Warranty. Unless required by applicable law or
144
+   agreed to in writing, Licensor provides the Work (and each
145
+   Contributor provides its Contributions) on an "AS IS" BASIS,
146
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+   implied, including, without limitation, any warranties or conditions
148
+   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+   PARTICULAR PURPOSE. You are solely responsible for determining the
150
+   appropriateness of using or redistributing the Work and assume any
151
+   risks associated with Your exercise of permissions under this License.
152
+
153
+8. Limitation of Liability. In no event and under no legal theory,
154
+   whether in tort (including negligence), contract, or otherwise,
155
+   unless required by applicable law (such as deliberate and grossly
156
+   negligent acts) or agreed to in writing, shall any Contributor be
157
+   liable to You for damages, including any direct, indirect, special,
158
+   incidental, or consequential damages of any character arising as a
159
+   result of this License or out of the use or inability to use the
160
+   Work (including but not limited to damages for loss of goodwill,
161
+   work stoppage, computer failure or malfunction, or any and all
162
+   other commercial damages or losses), even if such Contributor
163
+   has been advised of the possibility of such damages.
164
+
165
+9. Accepting Warranty or Additional Liability. While redistributing
166
+   the Work or Derivative Works thereof, You may choose to offer,
167
+   and charge a fee for, acceptance of support, warranty, indemnity,
168
+   or other liability obligations and/or rights consistent with this
169
+   License. However, in accepting such obligations, You may act only
170
+   on Your own behalf and on Your sole responsibility, not on behalf
171
+   of any other Contributor, and only if You agree to indemnify,
172
+   defend, and hold each Contributor harmless for any liability
173
+   incurred by, or claims asserted against, such Contributor by reason
174
+   of your accepting any such warranty or additional liability.
175
+
176
+END OF TERMS AND CONDITIONS
177
+
178
+APPENDIX: How to apply the Apache License to your work.
179
+
180
+   To apply the Apache License to your work, attach the following
181
+   boilerplate notice, with the fields enclosed by brackets "[]"
182
+   replaced with your own identifying information. (Don't include
183
+   the brackets!)  The text should be enclosed in the appropriate
184
+   comment syntax for the file format. We also recommend that a
185
+   file or class name and description of purpose be included on the
186
+   same "printed page" as the copyright notice for easier
187
+   identification within third-party archives.
188
+
189
+Copyright [yyyy] [name of copyright owner]
190
+
191
+Licensed under the Apache License, Version 2.0 (the "License");
192
+you may not use this file except in compliance with the License.
193
+You may obtain a copy of the License at
194
+
195
+	http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+Unless required by applicable law or agreed to in writing, software
198
+distributed under the License is distributed on an "AS IS" BASIS,
199
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+See the License for the specific language governing permissions and
201
+limitations under the License.

+ 23
- 0
hw5/task1/target/doc/LICENSE-MIT.txt Целия файл

@@ -0,0 +1,23 @@
1
+Permission is hereby granted, free of charge, to any
2
+person obtaining a copy of this software and associated
3
+documentation files (the "Software"), to deal in the
4
+Software without restriction, including without
5
+limitation the rights to use, copy, modify, merge,
6
+publish, distribute, sublicense, and/or sell copies of
7
+the Software, and to permit persons to whom the Software
8
+is furnished to do so, subject to the following
9
+conditions:
10
+
11
+The above copyright notice and this permission notice
12
+shall be included in all copies or substantial portions
13
+of the Software.
14
+
15
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
16
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
17
+TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
18
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
19
+SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
22
+IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23
+DEALINGS IN THE SOFTWARE.

+ 93
- 0
hw5/task1/target/doc/SourceCodePro-LICENSE.txt Целия файл

@@ -0,0 +1,93 @@
1
+Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
2
+
3
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
4
+
5
+This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
6
+
7
+
8
+-----------------------------------------------------------
9
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10
+-----------------------------------------------------------
11
+
12
+PREAMBLE
13
+The goals of the Open Font License (OFL) are to stimulate worldwide
14
+development of collaborative font projects, to support the font creation
15
+efforts of academic and linguistic communities, and to provide a free and
16
+open framework in which fonts may be shared and improved in partnership
17
+with others.
18
+
19
+The OFL allows the licensed fonts to be used, studied, modified and
20
+redistributed freely as long as they are not sold by themselves. The
21
+fonts, including any derivative works, can be bundled, embedded,
22
+redistributed and/or sold with any software provided that any reserved
23
+names are not used by derivative works. The fonts and derivatives,
24
+however, cannot be released under any other type of license. The
25
+requirement for fonts to remain under this license does not apply
26
+to any document created using the fonts or their derivatives.
27
+
28
+DEFINITIONS
29
+"Font Software" refers to the set of files released by the Copyright
30
+Holder(s) under this license and clearly marked as such. This may
31
+include source files, build scripts and documentation.
32
+
33
+"Reserved Font Name" refers to any names specified as such after the
34
+copyright statement(s).
35
+
36
+"Original Version" refers to the collection of Font Software components as
37
+distributed by the Copyright Holder(s).
38
+
39
+"Modified Version" refers to any derivative made by adding to, deleting,
40
+or substituting -- in part or in whole -- any of the components of the
41
+Original Version, by changing formats or by porting the Font Software to a
42
+new environment.
43
+
44
+"Author" refers to any designer, engineer, programmer, technical
45
+writer or other person who contributed to the Font Software.
46
+
47
+PERMISSION & CONDITIONS
48
+Permission is hereby granted, free of charge, to any person obtaining
49
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
50
+redistribute, and sell modified and unmodified copies of the Font
51
+Software, subject to the following conditions:
52
+
53
+1) Neither the Font Software nor any of its individual components,
54
+in Original or Modified Versions, may be sold by itself.
55
+
56
+2) Original or Modified Versions of the Font Software may be bundled,
57
+redistributed and/or sold with any software, provided that each copy
58
+contains the above copyright notice and this license. These can be
59
+included either as stand-alone text files, human-readable headers or
60
+in the appropriate machine-readable metadata fields within text or
61
+binary files as long as those fields can be easily viewed by the user.
62
+
63
+3) No Modified Version of the Font Software may use the Reserved Font
64
+Name(s) unless explicit written permission is granted by the corresponding
65
+Copyright Holder. This restriction only applies to the primary font name as
66
+presented to the users.
67
+
68
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
69
+Software shall not be used to promote, endorse or advertise any
70
+Modified Version, except to acknowledge the contribution(s) of the
71
+Copyright Holder(s) and the Author(s) or with their explicit written
72
+permission.
73
+
74
+5) The Font Software, modified or unmodified, in part or in whole,
75
+must be distributed entirely under this license, and must not be
76
+distributed under any other license. The requirement for fonts to
77
+remain under this license does not apply to any document created
78
+using the Font Software.
79
+
80
+TERMINATION
81
+This license becomes null and void if any of the above conditions are
82
+not met.
83
+
84
+DISCLAIMER
85
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
86
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
87
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
88
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
89
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
90
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
91
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
93
+OTHER DEALINGS IN THE FONT SOFTWARE.

Двоични данни
hw5/task1/target/doc/SourceCodePro-Regular.woff Целия файл


Двоични данни
hw5/task1/target/doc/SourceCodePro-Semibold.woff Целия файл


Двоични данни
hw5/task1/target/doc/SourceSerifPro-Bold.woff Целия файл


+ 93
- 0
hw5/task1/target/doc/SourceSerifPro-LICENSE.txt Целия файл

@@ -0,0 +1,93 @@
1
+Copyright 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
2
+
3
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
4
+
5
+This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
6
+
7
+
8
+-----------------------------------------------------------
9
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10
+-----------------------------------------------------------
11
+
12
+PREAMBLE
13
+The goals of the Open Font License (OFL) are to stimulate worldwide
14
+development of collaborative font projects, to support the font creation
15
+efforts of academic and linguistic communities, and to provide a free and
16
+open framework in which fonts may be shared and improved in partnership
17
+with others.
18
+
19
+The OFL allows the licensed fonts to be used, studied, modified and
20
+redistributed freely as long as they are not sold by themselves. The
21
+fonts, including any derivative works, can be bundled, embedded,
22
+redistributed and/or sold with any software provided that any reserved
23
+names are not used by derivative works. The fonts and derivatives,
24
+however, cannot be released under any other type of license. The
25
+requirement for fonts to remain under this license does not apply
26
+to any document created using the fonts or their derivatives.
27
+
28
+DEFINITIONS
29
+"Font Software" refers to the set of files released by the Copyright
30
+Holder(s) under this license and clearly marked as such. This may
31
+include source files, build scripts and documentation.
32
+
33
+"Reserved Font Name" refers to any names specified as such after the
34
+copyright statement(s).
35
+
36
+"Original Version" refers to the collection of Font Software components as
37
+distributed by the Copyright Holder(s).
38
+
39
+"Modified Version" refers to any derivative made by adding to, deleting,
40
+or substituting -- in part or in whole -- any of the components of the
41
+Original Version, by changing formats or by porting the Font Software to a
42
+new environment.
43
+
44
+"Author" refers to any designer, engineer, programmer, technical
45
+writer or other person who contributed to the Font Software.
46
+
47
+PERMISSION & CONDITIONS
48
+Permission is hereby granted, free of charge, to any person obtaining
49
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
50
+redistribute, and sell modified and unmodified copies of the Font
51
+Software, subject to the following conditions:
52
+
53
+1) Neither the Font Software nor any of its individual components,
54
+in Original or Modified Versions, may be sold by itself.
55
+
56
+2) Original or Modified Versions of the Font Software may be bundled,
57
+redistributed and/or sold with any software, provided that each copy
58
+contains the above copyright notice and this license. These can be
59
+included either as stand-alone text files, human-readable headers or
60
+in the appropriate machine-readable metadata fields within text or
61
+binary files as long as those fields can be easily viewed by the user.
62
+
63
+3) No Modified Version of the Font Software may use the Reserved Font
64
+Name(s) unless explicit written permission is granted by the corresponding
65
+Copyright Holder. This restriction only applies to the primary font name as
66
+presented to the users.
67
+
68
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
69
+Software shall not be used to promote, endorse or advertise any
70
+Modified Version, except to acknowledge the contribution(s) of the
71
+Copyright Holder(s) and the Author(s) or with their explicit written
72
+permission.
73
+
74
+5) The Font Software, modified or unmodified, in part or in whole,
75
+must be distributed entirely under this license, and must not be
76
+distributed under any other license. The requirement for fonts to
77
+remain under this license does not apply to any document created
78
+using the Font Software.
79
+
80
+TERMINATION
81
+This license becomes null and void if any of the above conditions are
82
+not met.
83
+
84
+DISCLAIMER
85
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
86
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
87
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
88
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
89
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
90
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
91
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
93
+OTHER DEALINGS IN THE FONT SOFTWARE.

Двоични данни
hw5/task1/target/doc/SourceSerifPro-Regular.woff Целия файл


+ 205
- 0
hw5/task1/target/doc/main.css Целия файл

@@ -0,0 +1,205 @@
1
+/**
2
+ * Copyright 2015 The Rust Project Developers. See the COPYRIGHT
3
+ * file at the top-level directory of this distribution and at
4
+ * http://rust-lang.org/COPYRIGHT.
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
7
+ * http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
8
+ * <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
9
+ * option. This file may not be copied, modified, or distributed
10
+ * except according to those terms.
11
+ */
12
+
13
+/* General structure and fonts */
14
+
15
+body {
16
+	background-color: white;
17
+	color: black;
18
+}
19
+
20
+h1, h2, h3:not(.impl):not(.method):not(.type):not(.tymethod), h4:not(.method):not(.type):not(.tymethod) {
21
+	color: black;
22
+}
23
+h1.fqn {
24
+	border-bottom-color: #D5D5D5;
25
+}
26
+h2, h3:not(.impl):not(.method):not(.type):not(.tymethod), h4:not(.method):not(.type):not(.tymethod) {
27
+	border-bottom-color: #DDDDDD;
28
+}
29
+
30
+.in-band {
31
+	background-color: white;
32
+}
33
+
34
+.docblock code, .docblock-short code {
35
+	background-color: #F5F5F5;
36
+}
37
+pre {
38
+	background-color: #F5F5F5;
39
+}
40
+
41
+.sidebar {
42
+	background-color: #F1F1F1;
43
+}
44
+
45
+.sidebar .current {
46
+	background-color: #fff;
47
+}
48
+
49
+.source .sidebar {
50
+	background-color: #fff;
51
+}
52
+
53
+.sidebar .location {
54
+	border-color: #000;
55
+	background-color: #fff;
56
+	color: #333;
57
+}
58
+
59
+.block a:hover {
60
+	background: #F5F5F5;
61
+}
62
+
63
+.line-numbers span { color: #c67e2d; }
64
+.line-numbers .line-highlighted {
65
+	background-color: #f6fdb0 !important;
66
+}
67
+
68
+.docblock h1, .docblock h2, .docblock h3, .docblock h4, .docblock h5 {
69
+	border-bottom-color: #DDD;
70
+}
71
+
72
+.docblock table {
73
+	border-color: #ddd;
74
+}
75
+
76
+.docblock table td {
77
+	border-top-color: #ddd;
78
+	border-bottom-color: #ddd;
79
+}
80
+
81
+.docblock table th {
82
+	border-top-color: #ddd;
83
+	border-bottom-color: #ddd;
84
+}
85
+
86
+:target { background: #FDFFD3; }
87
+
88
+:target > .in-band {
89
+	background: #FDFFD3;
90
+}
91
+
92
+.content .highlighted {
93
+	color: #000 !important;
94
+	background-color: #ccc;
95
+}
96
+.content .highlighted a, .content .highlighted span { color: #000 !important; }
97
+.content .highlighted.trait { background-color: #c7b6ff; }
98
+.content .highlighted.mod,
99
+.content .highlighted.externcrate { background-color: #afc6e4; }
100
+.content .highlighted.enum { background-color: #b4d1b9; }
101
+.content .highlighted.struct { background-color: #e7b1a0; }
102
+.content .highlighted.union { background-color: #b7bd49; }
103
+.content .highlighted.fn,
104
+.content .highlighted.method,
105
+.content .highlighted.tymethod { background-color: #c6afb3; }
106
+.content .highlighted.type { background-color: #ffc891; }
107
+.content .highlighted.macro { background-color: #8ce488; }
108
+.content .highlighted.constant,
109
+.content .highlighted.static { background-color: #c3e0ff; }
110
+.content .highlighted.primitive { background-color: #9aecff; }
111
+
112
+.content span.enum, .content a.enum, .block a.current.enum { color: #508157; }
113
+.content span.struct, .content a.struct, .block a.current.struct { color: #df3600; }
114
+.content span.type, .content a.type, .block a.current.type { color: #ba5d00; }
115
+.content span.macro, .content a.macro, .block a.current.macro { color: #068000; }
116
+.content span.union, .content a.union, .block a.current.union { color: #767b27; }
117
+.content span.constant, .content a.constant, .block a.current.constant,
118
+.content span.static, .content a.static, .block a.current.static { color: #546e8a; }
119
+.content span.primitive, .content a.primitive, .block a.current.primitive { color: #2c8093; }
120
+.content span.externcrate,
121
+.content span.mod, .content a.mod, .block a.current.mod { color: #4d76ae; }
122
+.content span.trait, .content a.trait, .block a.current.trait { color: #7c5af3; }
123
+.content span.fn, .content a.fn, .block a.current.fn,
124
+.content span.method, .content a.method, .block a.current.method,
125
+.content span.tymethod, .content a.tymethod, .block a.current.tymethod,
126
+.content .fnname { color: #9a6e31; }
127
+
128
+pre.rust .comment { color: #8E908C; }
129
+pre.rust .doccomment { color: #4D4D4C; }
130
+
131
+nav {
132
+	border-bottom-color: #e0e0e0;
133
+}
134
+nav.main .current {
135
+	border-top-color: #000;
136
+	border-bottom-color: #000;
137
+}
138
+nav.main .separator {
139
+	border: 1px solid #000;
140
+}
141
+a {
142
+	color: #000;
143
+}
144
+
145
+.docblock a, .docblock-short a, .stability a {
146
+	color: #3873AD;
147
+}
148
+
149
+a.test-arrow {
150
+	color: #f5f5f5;
151
+}
152
+
153
+.search-input {
154
+	color: #555;
155
+	box-shadow: 0 0 0 1px #e0e0e0, 0 0 0 2px transparent;
156
+	background-color: white;
157
+}
158
+
159
+.stab.unstable { background: #FFF5D6; border-color: #FFC600; }
160
+.stab.deprecated { background: #F3DFFF; border-color: #7F0087; }
161
+.stab.portability { background: #C4ECFF; border-color: #7BA5DB; }
162
+
163
+#help > div {
164
+	background: #e9e9e9;
165
+	border-color: #bfbfbf;;
166
+}
167
+
168
+#help dt {
169
+	border-color: #bfbfbf;
170
+	background: #fff;
171
+}
172
+
173
+.since {
174
+	color: grey;
175
+}
176
+
177
+.line-numbers :target { background-color: transparent; }
178
+
179
+/* Code highlighting */
180
+pre.rust .kw { color: #8959A8; }
181
+pre.rust .kw-2, pre.rust .prelude-ty { color: #4271AE; }
182
+pre.rust .number, pre.rust .string { color: #718C00; }
183
+pre.rust .self, pre.rust .bool-val, pre.rust .prelude-val,
184
+pre.rust .attribute, pre.rust .attribute .ident { color: #C82829; }
185
+pre.rust .macro, pre.rust .macro-nonterminal { color: #3E999F; }
186
+pre.rust .lifetime { color: #B76514; }
187
+pre.rust .question-mark {
188
+	color: #ff9011;
189
+}
190
+
191
+a.test-arrow {
192
+	background-color: rgba(78, 139, 202, 0.2);
193
+}
194
+
195
+a.test-arrow:hover{
196
+	background-color: #4e8bca;
197
+}
198
+
199
+.toggle-label {
200
+	color: #999;
201
+}
202
+
203
+:target > code {
204
+	background: #FDFFD3;
205
+}

+ 1304
- 0
hw5/task1/target/doc/main.js
Файловите разлики са ограничени, защото са твърде много
Целия файл


+ 1
- 0
hw5/task1/target/doc/normalize.css Целия файл

@@ -0,0 +1 @@
1
+/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}

+ 806
- 0
hw5/task1/target/doc/rustdoc.css Целия файл

@@ -0,0 +1,806 @@
1
+/**
2
+ * Copyright 2013 The Rust Project Developers. See the COPYRIGHT
3
+ * file at the top-level directory of this distribution and at
4
+ * http://rust-lang.org/COPYRIGHT.
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
7
+ * http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
8
+ * <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
9
+ * option. This file may not be copied, modified, or distributed
10
+ * except according to those terms.
11
+ */
12
+
13
+/* See FiraSans-LICENSE.txt for the Fira Sans license. */
14
+@font-face {
15
+	font-family: 'Fira Sans';
16
+	font-style: normal;
17
+	font-weight: 400;
18
+	src: local('Fira Sans'), url("FiraSans-Regular.woff") format('woff');
19
+}
20
+@font-face {
21
+	font-family: 'Fira Sans';
22
+	font-style: normal;
23
+	font-weight: 500;
24
+	src: local('Fira Sans Medium'), url("FiraSans-Medium.woff") format('woff');
25
+}
26
+
27
+/* See SourceSerifPro-LICENSE.txt for the Source Serif Pro license and
28
+ * Heuristica-LICENSE.txt for the Heuristica license. */
29
+@font-face {
30
+	font-family: 'Source Serif Pro';
31
+	font-style: normal;
32
+	font-weight: 400;
33
+	src: local('Source Serif Pro'), url("SourceSerifPro-Regular.woff") format('woff');
34
+}
35
+@font-face {
36
+	font-family: 'Source Serif Pro';
37
+	font-style: italic;
38
+	font-weight: 400;
39
+	src: url("Heuristica-Italic.woff") format('woff');
40
+}
41
+@font-face {
42
+	font-family: 'Source Serif Pro';
43
+	font-style: normal;
44
+	font-weight: 700;
45
+	src: local('Source Serif Pro Bold'), url("SourceSerifPro-Bold.woff") format('woff');
46
+}
47
+
48
+/* See SourceCodePro-LICENSE.txt for the Source Code Pro license. */
49
+@font-face {
50
+	font-family: 'Source Code Pro';
51
+	font-style: normal;
52
+	font-weight: 400;
53
+	/* Avoid using locally installed font because bad versions are in circulation:
54
+	 * see https://github.com/rust-lang/rust/issues/24355 */
55
+	src: url("SourceCodePro-Regular.woff") format('woff');
56
+}
57
+@font-face {
58
+	font-family: 'Source Code Pro';
59
+	font-style: normal;
60
+	font-weight: 600;
61
+	src: url("SourceCodePro-Semibold.woff") format('woff');
62
+}
63
+
64
+* {
65
+  -webkit-box-sizing: border-box;
66
+	 -moz-box-sizing: border-box;
67
+		  box-sizing: border-box;
68
+}
69
+
70
+/* General structure and fonts */
71
+
72
+body {
73
+	font: 16px/1.4 "Source Serif Pro", Georgia, Times, "Times New Roman", serif;
74
+	margin: 0;
75
+	position: relative;
76
+	padding: 10px 15px 20px 15px;
77
+
78
+	-webkit-font-feature-settings: "kern", "liga";
79
+	-moz-font-feature-settings: "kern", "liga";
80
+	font-feature-settings: "kern", "liga";
81
+}
82
+
83
+h1 {
84
+	font-size: 1.5em;
85
+}
86
+h2 {
87
+	font-size: 1.4em;
88
+}
89
+h3 {
90
+	font-size: 1.3em;
91
+}
92
+h1, h2, h3:not(.impl):not(.method):not(.type):not(.tymethod), h4:not(.method):not(.type):not(.tymethod):not(.associatedconstant) {
93
+	font-weight: 500;
94
+	margin: 20px 0 15px 0;
95
+	padding-bottom: 6px;
96
+}
97
+h1.fqn {
98
+	border-bottom: 1px dashed;
99
+	margin-top: 0;
100
+	position: relative;
101
+}
102
+h2, h3:not(.impl):not(.method):not(.type):not(.tymethod), h4:not(.method):not(.type):not(.tymethod):not(.associatedconstant) {
103
+	border-bottom: 1px solid;
104
+}
105
+h3.impl, h3.method, h4.method, h3.type, h4.type, h4.associatedconstant {
106
+	font-weight: 600;
107
+	margin-top: 10px;
108
+	margin-bottom: 10px;
109
+	position: relative;
110
+}
111
+h3.impl, h3.method, h3.type {
112
+	margin-top: 15px;
113
+}
114
+h1, h2, h3, h4, .sidebar, a.source, .search-input, .content table :not(code)>a, .collapse-toggle {
115
+	font-family: "Fira Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
116
+}
117
+
118
+ol, ul {
119
+	padding-left: 25px;
120
+}
121
+ul ul, ol ul, ul ol, ol ol {
122
+	margin-bottom: 0;
123
+}
124
+
125
+p {
126
+	margin: 0 0 .6em 0;
127
+}
128
+
129
+summary {
130
+	outline: none;
131
+}
132
+
133
+code, pre {
134
+	font-family: "Source Code Pro", Menlo, Monaco, Consolas, "DejaVu Sans Mono", Inconsolata, monospace;
135
+	white-space: pre-wrap;
136
+}
137
+.docblock code, .docblock-short code {
138
+	border-radius: 3px;
139
+	padding: 0 0.2em;
140
+}
141
+.docblock pre code, .docblock-short pre code {
142
+	padding: 0;
143
+}
144
+pre {
145
+	padding: 14px;
146
+}
147
+
148
+.source .content pre {
149
+	padding: 20px;
150
+}
151
+
152
+img {
153
+	max-width: 100%;
154
+}
155
+
156
+.source .content {
157
+	margin-top: 50px;
158
+	max-width: none;
159
+	overflow: visible;
160
+	margin-left: 0px;
161
+	min-width: 70em;
162
+}
163
+
164
+nav.sub {
165
+	font-size: 16px;
166
+	text-transform: uppercase;
167
+}
168
+
169
+.sidebar {
170
+	width: 200px;
171
+	position: absolute;
172
+	left: 0;
173
+	top: 0;
174
+	min-height: 100%;
175
+}
176
+
177
+.sidebar .current {
178
+	margin-right: -20px;
179
+}
180
+
181
+.content, nav { max-width: 960px; }
182
+
183
+/* Everything else */
184
+
185
+.js-only, .hidden { display: none !important; }
186
+
187
+.sidebar {
188
+	padding: 10px;
189
+}
190
+.sidebar img {
191
+	margin: 20px auto;
192
+	display: block;
193
+}
194
+
195
+.sidebar .location {
196
+	border: 1px solid;
197
+	font-size: 17px;
198
+	margin: 30px 0 20px 0;
199
+	text-align: center;
200
+	word-wrap: break-word;
201
+}
202
+
203
+.location:empty {
204
+	border: none;
205
+}
206
+
207
+.location a:first-child { font-weight: 500; }
208
+
209
+.block {
210
+	padding: 0 10px;
211
+	margin-bottom: 14px;
212
+}
213
+.block h2, .block h3 {
214
+	margin-top: 0;
215
+	margin-bottom: 8px;
216
+	text-align: center;
217
+}
218
+.block ul, .block li {
219
+	margin: 0;
220
+	padding: 0;
221
+	list-style: none;
222
+}
223
+
224
+.block a {
225
+	display: block;
226
+	text-overflow: ellipsis;
227
+	overflow: hidden;
228
+	line-height: 15px;
229
+	padding: 7px 5px;
230
+	font-size: 14px;
231
+	font-weight: 300;
232
+	transition: border 500ms ease-out;
233
+}
234
+
235
+.content {
236
+	padding: 15px 0;
237
+}
238
+
239
+.source .content pre.rust {
240
+	white-space: pre;
241
+	overflow: auto;
242
+	padding-left: 0;
243
+}
244
+#search {
245
+	margin-left: 230px;
246
+}
247
+.content pre.line-numbers {
248
+	float: left;
249
+	border: none;
250
+	position: relative;
251
+
252
+	-webkit-user-select: none;
253
+	-moz-user-select: none;
254
+	-ms-user-select: none;
255
+	user-select: none;
256
+}
257
+.line-numbers span { cursor: pointer; }
258
+
259
+.docblock-short p {
260
+	display: inline;
261
+}
262
+
263
+.docblock-short.nowrap {
264
+	display: block;
265
+	overflow: hidden;
266
+	white-space: nowrap;
267
+	text-overflow: ellipsis;
268
+}
269
+
270
+.docblock-short p {
271
+	overflow: hidden;
272
+	text-overflow: ellipsis;
273
+	margin: 0;
274
+}
275
+.docblock-short code { white-space: nowrap; }
276
+
277
+.docblock h1, .docblock h2, .docblock h3, .docblock h4, .docblock h5 {
278
+	border-bottom: 1px solid;
279
+}
280
+
281
+#main > .docblock h1 { font-size: 1.3em; }
282
+#main > .docblock h2 { font-size: 1.15em; }
283
+#main > .docblock h3, #main > .docblock h4, #main > .docblock h5 { font-size: 1em; }
284
+
285
+.docblock h1 { font-size: 1em; }
286
+.docblock h2 { font-size: 0.95em; }
287
+.docblock h3, .docblock h4, .docblock h5 { font-size: 0.9em; }
288
+
289
+.docblock {
290
+	margin-left: 24px;
291
+}
292
+
293
+.content .out-of-band {
294
+	font-size: 23px;
295
+	margin: 0px;
296
+	padding: 0px;
297
+	text-align: right;
298
+	display: inline-block;
299
+	font-weight: normal;
300
+	position: absolute;
301
+	right: 0;
302
+}
303
+
304
+h3.impl > .out-of-band {
305
+	font-size: 21px;
306
+}
307
+
308
+h4.method > .out-of-band {
309
+	font-size: 19px;
310
+}
311
+
312
+h4 > code, h3 > code, .invisible > code {
313
+	position: inherit;
314
+}
315
+
316
+.in-band, code {
317
+	z-index: 5;
318
+}
319
+
320
+.invisible {
321
+	background: rgba(0, 0, 0, 0);
322
+	width: 100%;
323
+	display: inline-block;
324
+}
325
+
326
+.content .in-band {
327
+	margin: 0px;
328
+	padding: 0px;
329
+	display: inline-block;
330
+}
331
+
332
+#main { position: relative; }
333
+#main > .since {
334
+	top: inherit;
335
+	font-family: "Fira Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
336
+}
337
+
338
+.content table {
339
+	border-spacing: 0 5px;
340
+	border-collapse: separate;
341
+}
342
+.content td { vertical-align: top; }
343
+.content td:first-child { padding-right: 20px; }
344
+.content td p:first-child { margin-top: 0; }
345
+.content td h1, .content td h2 { margin-left: 0; font-size: 1.1em; }
346
+
347
+.docblock table {
348
+	border: 1px solid;
349
+	margin: .5em 0;
350
+	border-collapse: collapse;
351
+	width: 100%;
352
+}
353
+
354
+.docblock table td {
355
+	padding: .5em;
356
+	border-top: 1px dashed;
357
+	border-bottom: 1px dashed;
358
+}
359
+
360
+.docblock table th {
361
+	padding: .5em;
362
+	text-align: left;
363
+	border-top: 1px solid;
364
+	border-bottom: 1px solid;
365
+}
366
+
367
+.fields + table {
368
+	margin-bottom: 1em;
369
+}
370
+
371
+.content .item-list {
372
+	list-style-type: none;
373
+	padding: 0;
374
+}
375
+
376
+.content .item-list li { margin-bottom: 3px; }
377
+
378
+.content .multi-column {
379
+	-moz-column-count: 5;
380
+	-moz-column-gap: 2.5em;
381
+	-webkit-column-count: 5;
382
+	-webkit-column-gap: 2.5em;
383
+	column-count: 5;
384
+	column-gap: 2.5em;
385
+}
386
+.content .multi-column li { width: 100%; display: inline-block; }
387
+
388
+.content .method {
389
+	font-size: 1em;
390
+	position: relative;
391
+}
392
+/* Shift "where ..." part of method or fn definition down a line */
393
+.content .method .where,
394
+.content .fn .where,
395
+.content .where.fmt-newline {
396
+	display: block;
397
+	color: #4E4C4C;
398
+	font-size: 0.8em;
399
+}
400
+
401
+.content .methods > div { margin-left: 40px; }
402
+
403
+.content .impl-items .docblock, .content .impl-items .stability {
404
+	margin-left: 40px;
405
+}
406
+.content .impl-items .method, .content .impl-items > .type, .impl-items > .associatedconstant {
407
+	margin-left: 20px;
408
+}
409
+
410
+.content .stability code {
411
+	font-size: 90%;
412
+}
413
+
414
+nav {
415
+	border-bottom: 1px solid;
416
+	padding-bottom: 10px;
417
+	margin-bottom: 10px;
418
+}
419
+nav.main {
420
+	padding: 20px 0;
421
+	text-align: center;
422
+}
423
+nav.main .current {
424
+	border-top: 1px solid;
425
+	border-bottom: 1px solid;
426
+}
427
+nav.main .separator {
428
+	border: 1px solid;
429
+	display: inline-block;
430
+	height: 23px;
431
+	margin: 0 20px;
432
+}
433
+nav.sum { text-align: right; }
434
+nav.sub form { display: inline; }
435
+
436
+nav.sub, .content {
437
+	margin-left: 230px;
438
+}
439
+
440
+a {
441
+	text-decoration: none;
442
+	background: transparent;
443
+}
444
+
445
+.small-section-header:hover > .anchor {
446
+	display: initial;
447
+}
448
+
449
+.in-band:hover > .anchor {
450
+	display: initial;
451
+}
452
+.anchor {
453
+	display: none;
454
+}
455
+.anchor:after {
456
+	content: '\2002\00a7\2002';
457
+}
458
+
459
+.docblock a:hover, .docblock-short a:hover, .stability a {
460
+	text-decoration: underline;
461
+}
462
+
463
+.block a.current.crate { font-weight: 500; }
464
+
465
+.search-input {
466
+	width: 100%;
467
+	/* Override Normalize.css: we have margins and do
468
+	 not want to overflow - the `moz` attribute is necessary
469
+	 until Firefox 29, too early to drop at this point */
470
+	-moz-box-sizing: border-box !important;
471
+	box-sizing: border-box !important;
472
+	outline: none;
473
+	border: none;
474
+	border-radius: 1px;
475
+	margin-top: 5px;
476
+	padding: 10px 16px;
477
+	font-size: 17px;
478
+	transition: border-color 300ms ease;
479
+	transition: border-radius 300ms ease-in-out;
480
+	transition: box-shadow 300ms ease-in-out;
481
+}
482
+
483
+.search-input:focus {
484
+	border-color: #66afe9;
485
+	border-radius: 2px;
486
+	border: 0;
487
+	outline: 0;
488
+	box-shadow: 0 0 8px #078dd8;
489
+}
490
+
491
+.search-results .desc {
492
+	white-space: nowrap;
493
+	text-overflow: ellipsis;
494
+	overflow: hidden;
495
+	display: block;
496
+}
497
+
498
+.search-results a {
499
+	display: block;
500
+}
501
+
502
+.content .search-results td:first-child { padding-right: 0; }
503
+.content .search-results td:first-child a { padding-right: 10px; }
504
+
505
+tr.result span.primitive::after { content: ' (primitive type)'; font-style: italic; color: black;
506
+}
507
+
508
+body.blur > :not(#help) {
509
+	filter: blur(8px);
510
+	-webkit-filter: blur(8px);
511
+	opacity: .7;
512
+}
513
+
514
+#help {
515
+	width: 100%;
516
+	height: 100vh;
517
+	position: fixed;
518
+	top: 0;
519
+	left: 0;
520
+	display: flex;
521
+	justify-content: center;
522
+	align-items: center;
523
+}
524
+#help > div {
525
+	flex: 0 0 auto;
526
+	box-shadow: 0 0 6px rgba(0,0,0,.2);
527
+	width: 550px;
528
+	height: 330px;
529
+	border: 1px solid;
530
+}
531
+#help dt {
532
+	float: left;
533
+	border-radius: 4px;
534
+	border: 1px solid;
535
+	width: 23px;
536
+	text-align: center;
537
+	clear: left;
538
+	display: block;
539
+	margin-top: -1px;
540
+}
541
+#help dd { margin: 5px 33px; }
542
+#help .infos { padding-left: 0; }
543
+#help h1, #help h2 { margin-top: 0; }
544
+#help > div div {
545
+	width: 50%;
546
+	float: left;
547
+	padding: 20px;
548
+}
549
+
550
+.stab {
551
+	display: table;
552
+	border-width: 1px;
553
+	border-style: solid;
554
+	padding: 3px;
555
+	margin-bottom: 5px;
556
+	font-size: 90%;
557
+}
558
+.stab p {
559
+	display: inline;
560
+}
561
+
562
+.stab summary {
563
+	display: list-item;
564
+}
565
+
566
+.stab .microscope {
567
+	font-size: 1.5em;
568
+}
569
+
570
+.module-item .stab {
571
+	display: inline;
572
+	border-width: 0;
573
+	padding: 0;
574
+	margin: 0;
575
+	background: inherit !important;
576
+}
577
+
578
+.module-item.unstable {
579
+	opacity: 0.65;
580
+}
581
+
582
+.since {
583
+	font-weight: normal;
584
+	font-size: initial;
585
+	position: absolute;
586
+	right: 0;
587
+	top: 0;
588
+}
589
+
590
+.variants_table {
591
+	width: 100%;
592
+}
593
+
594
+.variants_table tbody tr td:first-child {
595
+	width: 1%; /* make the variant name as small as possible */
596
+}
597
+
598
+td.summary-column {
599
+	width: 100%;
600
+}
601
+
602
+.summary {
603
+	padding-right: 0px;
604
+}
605
+
606
+pre.rust .question-mark {
607
+	font-weight: bold;
608
+}
609
+
610
+pre.rust { position: relative; }
611
+a.test-arrow {
612
+	display: inline-block;
613
+	position: absolute;
614
+	padding: 5px 10px 5px 10px;
615
+	border-radius: 5px;
616
+	font-size: 130%;
617
+	top: 5px;
618
+	right: 5px;
619
+}
620
+a.test-arrow:hover{
621
+	text-decoration: none;
622
+}
623
+
624
+.section-header:hover a:after {
625
+	content: '\2002\00a7\2002';
626
+}
627
+
628
+.section-header:hover a {
629
+	text-decoration: none;
630
+}
631
+
632
+.section-header a {
633
+	color: inherit;
634
+}
635
+
636
+.collapse-toggle {
637
+	font-weight: 300;
638
+	position: absolute;
639
+	left: -23px;
640
+	color: #999;
641
+	top: 0;
642
+}
643
+
644
+h3 > .collapse-toggle, h4 > .collapse-toggle {
645
+	font-size: 0.8em;
646
+	top: 5px;
647
+}
648
+
649
+.toggle-wrapper > .collapse-toggle {
650
+	left: -24px;
651
+	margin-top: 0px;
652
+}
653
+
654
+.toggle-wrapper {
655
+	position: relative;
656
+}
657
+
658
+.toggle-wrapper.collapsed {
659
+	height: 1em;
660
+	transition: height .2s;
661
+}
662
+
663
+.collapse-toggle > .inner {
664
+	display: inline-block;
665
+	width: 1.2ch;
666
+	text-align: center;
667
+}
668
+
669
+.ghost {
670
+	display: none;
671
+}
672
+
673
+.ghost + .since {
674
+	position: initial;
675
+	display: table-cell;
676
+}
677
+
678
+.since + .srclink {
679
+	display: table-cell;
680
+	padding-left: 10px;
681
+}
682
+
683
+.item-spacer {
684
+	width: 100%;
685
+	height: 12px;
686
+}
687
+
688
+span.since {
689
+	position: initial;
690
+	font-size: 20px;
691
+	margin-right: 5px;
692
+}
693
+
694
+.toggle-wrapper > .collapse-toggle {
695
+	left: 0;
696
+}
697
+
698
+.variant + .toggle-wrapper + .docblock > p {
699
+	margin-top: 5px;
700
+}
701
+
702
+.variant + .toggle-wrapper > a {
703
+	margin-top: 5px;
704
+}
705
+
706
+.sub-variant, .sub-variant > h3 {
707
+	margin-top: 0 !important;
708
+}
709
+
710
+.enum > .toggle-wrapper + .docblock, .struct > .toggle-wrapper + .docblock {
711
+	margin-left: 30px;
712
+	margin-bottom: 20px;
713
+	margin-top: 5px;
714
+}
715
+
716
+.enum > .collapsed, .struct > .collapsed {
717
+	margin-bottom: 25px;
718
+}
719
+
720
+#main > .variant, #main > .structfield {
721
+	display: block;
722
+}
723
+
724
+.attributes {
725
+	display: block;
726
+	margin: 0px 0px 0px 30px !important;
727
+}
728
+.toggle-attributes.collapsed {
729
+	margin-bottom: 5px;
730
+}
731
+
732
+:target > code {
733
+	opacity: 1;
734
+}
735
+
736
+/* Media Queries */
737
+
738
+@media (max-width: 700px) {
739
+	body {
740
+		padding-top: 0px;
741
+	}
742
+
743
+	.sidebar {
744
+		height: 40px;
745
+		min-height: 40px;
746
+		width: 100%;
747
+		margin: 0px;
748
+		padding: 0px;
749
+		position: static;
750
+	}
751
+
752
+	.sidebar .location {
753
+		float: right;
754
+		margin: 0px;
755
+		padding: 3px 10px 1px 10px;
756
+		min-height: 39px;
757
+		background: inherit;
758
+		text-align: left;
759
+		font-size: 24px;
760
+	}
761
+
762
+	.sidebar .location:empty {
763
+		padding: 0;
764
+	}
765
+
766
+	.sidebar img {
767
+		width: 35px;
768
+		margin-top: 5px;
769
+		margin-bottom: 0px;
770
+		float: left;
771
+	}
772
+
773
+	nav.sub {
774
+		margin: 0 auto;
775
+	}
776
+
777
+	.sidebar .block {
778
+		display: none;
779
+	}
780
+
781
+	.content {
782
+		margin-left: 0px;
783
+	}
784
+
785
+	.content .in-band {
786
+		width: 100%;
787
+	}
788
+
789
+	.content .out-of-band {
790
+		display: none;
791
+	}
792
+
793
+	.toggle-wrapper > .collapse-toggle {
794
+		left: 0px;
795
+	}
796
+
797
+	.toggle-wrapper {
798
+		height: 1.5em;
799
+	}
800
+}
801
+
802
+@media print {
803
+	nav.sub, .content .out-of-band, .collapse-toggle {
804
+		display: none;
805
+	}
806
+}

+ 3
- 0
hw5/task1/target/doc/search-index.js Целия файл

@@ -0,0 +1,3 @@
1
+var searchIndex = {};
2
+searchIndex["task1"] = {"doc":"","items":[],"paths":[]};
3
+initSearch(searchIndex);

+ 234
- 0
hw5/task1/target/doc/src/task1/child/mod.rs.html Целия файл

@@ -0,0 +1,234 @@
1
+<!DOCTYPE html>
2
+<html lang="en">
3
+<head>
4
+    <meta charset="utf-8">
5
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+    <meta name="generator" content="rustdoc">
7
+    <meta name="description" content="Source to the Rust file `src/child/mod.rs`.">
8
+    <meta name="keywords" content="rust, rustlang, rust-lang">
9
+
10
+    <title>mod.rs.html -- source</title>
11
+
12
+    <link rel="stylesheet" type="text/css" href="../../../normalize.css">
13
+    <link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
14
+    <link rel="stylesheet" type="text/css" href="../../../main.css">
15
+    
16
+
17
+    
18
+    
19
+</head>
20
+<body class="rustdoc source">
21
+    <!--[if lte IE 8]>
22
+    <div class="warning">
23
+        This old browser is unsupported and will most likely display funky
24
+        things.
25
+    </div>
26
+    <![endif]-->
27
+
28
+    
29
+
30
+    <nav class="sidebar">
31
+        
32
+        
33
+    </nav>
34
+
35
+    <nav class="sub">
36
+        <form class="search-form js-only">
37
+            <div class="search-container">
38
+                <input class="search-input" name="search"
39
+                       autocomplete="off"
40
+                       placeholder="Click or press ‘S’ to search, ‘?’ for more options…"
41
+                       type="search">
42
+            </div>
43
+        </form>
44
+    </nav>
45
+
46
+    <section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
47
+<span id="2"> 2</span>
48
+<span id="3"> 3</span>
49
+<span id="4"> 4</span>
50
+<span id="5"> 5</span>
51
+<span id="6"> 6</span>
52
+<span id="7"> 7</span>
53
+<span id="8"> 8</span>
54
+<span id="9"> 9</span>
55
+<span id="10">10</span>
56
+<span id="11">11</span>
57
+<span id="12">12</span>
58
+<span id="13">13</span>
59
+<span id="14">14</span>
60
+<span id="15">15</span>
61
+<span id="16">16</span>
62
+<span id="17">17</span>
63
+<span id="18">18</span>
64
+<span id="19">19</span>
65
+<span id="20">20</span>
66
+<span id="21">21</span>
67
+<span id="22">22</span>
68
+<span id="23">23</span>
69
+<span id="24">24</span>
70
+<span id="25">25</span>
71
+<span id="26">26</span>
72
+<span id="27">27</span>
73
+<span id="28">28</span>
74
+<span id="29">29</span>
75
+<span id="30">30</span>
76
+<span id="31">31</span>
77
+<span id="32">32</span>
78
+<span id="33">33</span>
79
+<span id="34">34</span>
80
+<span id="35">35</span>
81
+<span id="36">36</span>
82
+<span id="37">37</span>
83
+<span id="38">38</span>
84
+<span id="39">39</span>
85
+<span id="40">40</span>
86
+<span id="41">41</span>
87
+<span id="42">42</span>
88
+<span id="43">43</span>
89
+<span id="44">44</span>
90
+<span id="45">45</span>
91
+<span id="46">46</span>
92
+<span id="47">47</span>
93
+<span id="48">48</span>
94
+<span id="49">49</span>
95
+<span id="50">50</span>
96
+<span id="51">51</span>
97
+<span id="52">52</span>
98
+<span id="53">53</span>
99
+<span id="54">54</span>
100
+<span id="55">55</span>
101
+<span id="56">56</span>
102
+<span id="57">57</span>
103
+<span id="58">58</span>
104
+<span id="59">59</span>
105
+<span id="60">60</span>
106
+<span id="61">61</span>
107
+<span id="62">62</span>
108
+<span id="63">63</span>
109
+</pre><pre class="rust ">
110
+<span class="kw">use</span> <span class="ident">nix</span>::<span class="ident">unistd</span>::{<span class="ident">fork</span>, <span class="ident">getpid</span>};
111
+<span class="kw">use</span> <span class="ident">nix</span>::<span class="ident">sys</span>::<span class="ident">wait</span>::<span class="ident">wait</span>;
112
+<span class="kw">use</span> <span class="ident">nix</span>::<span class="ident">sys</span>::<span class="ident">wait</span>::<span class="ident">WaitStatus</span>;
113
+<span class="kw">use</span> <span class="ident">nix</span>::<span class="ident">unistd</span>::<span class="ident">ForkResult</span>::{<span class="ident">Child</span>, <span class="ident">Parent</span>};
114
+
115
+<span class="kw">mod</span> <span class="ident">pstree</span>;
116
+
117
+<span class="doccomment">/// Required function.</span>
118
+<span class="doccomment">/// Accepts parameter *start_pid* which will be root-process in the printed pstree.</span>
119
+<span class="doccomment">/// Parses parameter *arg* as the number of forked processes.</span>
120
+<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">run_childs</span>(<span class="ident">start_pid</span>: <span class="ident">i32</span>, <span class="ident">arg</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">String</span><span class="op">&gt;</span> {
121
+    <span class="kw">let</span> <span class="ident">count</span> <span class="op">=</span> <span class="ident">arg</span>.<span class="ident">parse</span>::<span class="op">&lt;</span><span class="ident">u8</span><span class="op">&gt;</span>();
122
+    <span class="kw">match</span> <span class="ident">count</span> {
123
+        <span class="prelude-val">Ok</span>(<span class="ident">value</span>) <span class="op">=&gt;</span> {
124
+
125
+            <span class="kw">if</span> <span class="ident">value</span> <span class="op">&gt;</span> <span class="number">0</span> {
126
+                <span class="ident">fork_children</span>(<span class="number">0</span>, <span class="ident">value</span> <span class="op">-</span> <span class="number">1</span>, <span class="ident">start_pid</span>);
127
+            } <span class="kw">else</span> {
128
+                <span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="string">&quot;Number of forks must not be zero.&quot;</span>.<span class="ident">to_string</span>());
129
+            }
130
+
131
+            <span class="prelude-val">Ok</span>(())
132
+        }
133
+        <span class="prelude-val">Err</span>(_) <span class="op">=&gt;</span> {
134
+            <span class="prelude-val">Err</span>(
135
+                <span class="string">&quot;Failed to parse arguments. PIDs must be decimal.&quot;</span>.<span class="ident">to_string</span>(),
136
+            )
137
+        }
138
+    }
139
+}
140
+
141
+
142
+<span class="doccomment">/// Private function, which forks specified amount of processes (*count*) through recursion</span>
143
+<span class="kw">fn</span> <span class="ident">fork_children</span>(<span class="ident">count</span>: <span class="ident">u8</span>, <span class="ident">to</span>: <span class="ident">u8</span>, <span class="ident">start_pid</span>: <span class="ident">i32</span>) {
144
+    <span class="kw">let</span> <span class="ident">pid</span> <span class="op">=</span> <span class="ident">fork</span>();
145
+    <span class="kw">match</span> <span class="ident">pid</span> {
146
+        <span class="prelude-val">Ok</span>(<span class="ident">Child</span>) <span class="op">=&gt;</span> {
147
+            <span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;hello, I am child (pid:{})&quot;</span>, <span class="ident">getpid</span>());
148
+            <span class="kw">if</span> <span class="ident">count</span> <span class="op">&lt;</span> <span class="ident">to</span> {
149
+                <span class="ident">fork_children</span>(<span class="ident">count</span> <span class="op">+</span> <span class="number">1</span>, <span class="ident">to</span>, <span class="ident">start_pid</span>);
150
+            } <span class="kw">else</span> {
151
+                <span class="macro">println</span><span class="macro">!</span>();
152
+                <span class="ident">pstree</span>::<span class="ident">print</span>(<span class="ident">start_pid</span>);
153
+            }
154
+        }
155
+
156
+        <span class="prelude-val">Ok</span>(<span class="ident">Parent</span> { <span class="ident">child</span> }) <span class="op">=&gt;</span> {
157
+            <span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Ok</span>(<span class="ident">ws</span>) <span class="op">=</span> <span class="ident">wait</span>() {
158
+                <span class="kw">if</span> <span class="kw">let</span> <span class="ident">WaitStatus</span>::<span class="ident">Exited</span>(<span class="ident">child_pid</span>, <span class="ident">exit_code</span>) <span class="op">=</span> <span class="ident">ws</span> {
159
+                    <span class="macro">println</span><span class="macro">!</span>(
160
+                        <span class="string">&quot;I am {} and my child is {}. After I waited for {}, it sent me status {:?}&quot;</span>,
161
+                        <span class="ident">getpid</span>(),
162
+                        <span class="ident">child</span>,
163
+                        <span class="ident">child_pid</span>,
164
+                        <span class="ident">exit_code</span>
165
+                    );
166
+                }
167
+            }
168
+        }
169
+
170
+        <span class="prelude-val">Err</span>(_) <span class="op">=&gt;</span> {}
171
+    }
172
+}
173
+</pre>
174
+</section>
175
+    <section id='search' class="content hidden"></section>
176
+
177
+    <section class="footer"></section>
178
+
179
+    <aside id="help" class="hidden">
180
+        <div>
181
+            <h1 class="hidden">Help</h1>
182
+
183
+            <div class="shortcuts">
184
+                <h2>Keyboard Shortcuts</h2>
185
+
186
+                <dl>
187
+                    <dt>?</dt>
188
+                    <dd>Show this help dialog</dd>
189
+                    <dt>S</dt>
190
+                    <dd>Focus the search field</dd>
191
+                    <dt>&larrb;</dt>
192
+                    <dd>Move up in search results</dd>
193
+                    <dt>&rarrb;</dt>
194
+                    <dd>Move down in search results</dd>
195
+                    <dt>&#9166;</dt>
196
+                    <dd>Go to active search result</dd>
197
+                    <dt>+</dt>
198
+                    <dd>Collapse/expand all sections</dd>
199
+                </dl>
200
+            </div>
201
+
202
+            <div class="infos">
203
+                <h2>Search Tricks</h2>
204
+
205
+                <p>
206
+                    Prefix searches with a type followed by a colon (e.g.
207
+                    <code>fn:</code>) to restrict the search to a given type.
208
+                </p>
209
+
210
+                <p>
211
+                    Accepted types are: <code>fn</code>, <code>mod</code>,
212
+                    <code>struct</code>, <code>enum</code>,
213
+                    <code>trait</code>, <code>type</code>, <code>macro</code>,
214
+                    and <code>const</code>.
215
+                </p>
216
+
217
+                <p>
218
+                    Search functions by type signature (e.g.
219
+                    <code>vec -> usize</code> or <code>* -> vec</code>)
220
+                </p>
221
+            </div>
222
+        </div>
223
+    </aside>
224
+
225
+    
226
+
227
+    <script>
228
+        window.rootPath = "../../../";
229
+        window.currentCrate = "task1";
230
+    </script>
231
+    <script src="../../../main.js"></script>
232
+    <script defer src="../../../search-index.js"></script>
233
+</body>
234
+</html>

+ 292
- 0
hw5/task1/target/doc/src/task1/child/pstree.rs.html Целия файл

@@ -0,0 +1,292 @@
1
+<!DOCTYPE html>
2
+<html lang="en">
3
+<head>
4
+    <meta charset="utf-8">
5
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+    <meta name="generator" content="rustdoc">
7
+    <meta name="description" content="Source to the Rust file `src/child/pstree.rs`.">
8
+    <meta name="keywords" content="rust, rustlang, rust-lang">
9
+
10
+    <title>pstree.rs.html -- source</title>
11
+
12
+    <link rel="stylesheet" type="text/css" href="../../../normalize.css">
13
+    <link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
14
+    <link rel="stylesheet" type="text/css" href="../../../main.css">
15
+    
16
+
17
+    
18
+    
19
+</head>
20
+<body class="rustdoc source">
21
+    <!--[if lte IE 8]>
22
+    <div class="warning">
23
+        This old browser is unsupported and will most likely display funky
24
+        things.
25
+    </div>
26
+    <![endif]-->
27
+
28
+    
29
+
30
+    <nav class="sidebar">
31
+        
32
+        
33
+    </nav>
34
+
35
+    <nav class="sub">
36
+        <form class="search-form js-only">
37
+            <div class="search-container">
38
+                <input class="search-input" name="search"
39
+                       autocomplete="off"
40
+                       placeholder="Click or press ‘S’ to search, ‘?’ for more options…"
41
+                       type="search">
42
+            </div>
43
+        </form>
44
+    </nav>
45
+
46
+    <section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
47
+<span id="2"> 2</span>
48
+<span id="3"> 3</span>
49
+<span id="4"> 4</span>
50
+<span id="5"> 5</span>
51
+<span id="6"> 6</span>
52
+<span id="7"> 7</span>
53
+<span id="8"> 8</span>
54
+<span id="9"> 9</span>
55
+<span id="10">10</span>
56
+<span id="11">11</span>
57
+<span id="12">12</span>
58
+<span id="13">13</span>
59
+<span id="14">14</span>
60
+<span id="15">15</span>
61
+<span id="16">16</span>
62
+<span id="17">17</span>
63
+<span id="18">18</span>
64
+<span id="19">19</span>
65
+<span id="20">20</span>
66
+<span id="21">21</span>
67
+<span id="22">22</span>
68
+<span id="23">23</span>
69
+<span id="24">24</span>
70
+<span id="25">25</span>
71
+<span id="26">26</span>
72
+<span id="27">27</span>
73
+<span id="28">28</span>
74
+<span id="29">29</span>
75
+<span id="30">30</span>
76
+<span id="31">31</span>
77
+<span id="32">32</span>
78
+<span id="33">33</span>
79
+<span id="34">34</span>
80
+<span id="35">35</span>
81
+<span id="36">36</span>
82
+<span id="37">37</span>
83
+<span id="38">38</span>
84
+<span id="39">39</span>
85
+<span id="40">40</span>
86
+<span id="41">41</span>
87
+<span id="42">42</span>
88
+<span id="43">43</span>
89
+<span id="44">44</span>
90
+<span id="45">45</span>
91
+<span id="46">46</span>
92
+<span id="47">47</span>
93
+<span id="48">48</span>
94
+<span id="49">49</span>
95
+<span id="50">50</span>
96
+<span id="51">51</span>
97
+<span id="52">52</span>
98
+<span id="53">53</span>
99
+<span id="54">54</span>
100
+<span id="55">55</span>
101
+<span id="56">56</span>
102
+<span id="57">57</span>
103
+<span id="58">58</span>
104
+<span id="59">59</span>
105
+<span id="60">60</span>
106
+<span id="61">61</span>
107
+<span id="62">62</span>
108
+<span id="63">63</span>
109
+<span id="64">64</span>
110
+<span id="65">65</span>
111
+<span id="66">66</span>
112
+<span id="67">67</span>
113
+<span id="68">68</span>
114
+<span id="69">69</span>
115
+<span id="70">70</span>
116
+<span id="71">71</span>
117
+<span id="72">72</span>
118
+<span id="73">73</span>
119
+<span id="74">74</span>
120
+<span id="75">75</span>
121
+<span id="76">76</span>
122
+<span id="77">77</span>
123
+<span id="78">78</span>
124
+<span id="79">79</span>
125
+<span id="80">80</span>
126
+<span id="81">81</span>
127
+<span id="82">82</span>
128
+<span id="83">83</span>
129
+<span id="84">84</span>
130
+<span id="85">85</span>
131
+<span id="86">86</span>
132
+<span id="87">87</span>
133
+<span id="88">88</span>
134
+<span id="89">89</span>
135
+<span id="90">90</span>
136
+<span id="91">91</span>
137
+<span id="92">92</span>
138
+</pre><pre class="rust ">
139
+<span class="kw">use</span> <span class="ident">procinfo</span>::<span class="ident">pid</span>;
140
+
141
+<span class="doccomment">/// Datenstruktur für einen Prozess.</span>
142
+<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Process</span> {
143
+    <span class="ident">name</span>: <span class="ident">String</span>,
144
+    <span class="ident">pid</span>: <span class="ident">i32</span>,
145
+    <span class="ident">ppid</span>: <span class="ident">i32</span>,
146
+}
147
+
148
+<span class="kw">impl</span> <span class="ident">Process</span> {
149
+    <span class="doccomment">/// Erstellt eine Prozess-Datenstruktur aus procinfo::Stat.</span>
150
+    <span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">with_pid</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
151
+        <span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Ok</span>(<span class="ident">stat</span>) <span class="op">=</span> <span class="ident">pid</span>::<span class="ident">stat</span>(<span class="ident">with_pid</span>) {
152
+            <span class="ident">Process</span> {
153
+                <span class="ident">name</span>: <span class="ident">stat</span>.<span class="ident">command</span>,
154
+                <span class="ident">pid</span>: <span class="ident">stat</span>.<span class="ident">pid</span>,
155
+                <span class="ident">ppid</span>: <span class="ident">stat</span>.<span class="ident">ppid</span>,
156
+            }
157
+        } <span class="kw">else</span> {
158
+            <span class="macro">panic</span><span class="macro">!</span>(<span class="string">&quot;Internal Error: Process not found&quot;</span>)
159
+        }
160
+    }
161
+
162
+    <span class="doccomment">/// Erstellt eine Prozess-Datenstruktur aus procinfo::Stat.</span>
163
+    <span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">me</span>() <span class="op">-&gt;</span> <span class="self">Self</span> {
164
+        <span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Ok</span>(<span class="ident">my_pid</span>) <span class="op">=</span> <span class="ident">pid</span>::<span class="ident">stat_self</span>() {
165
+            <span class="ident">Process</span>::<span class="ident">new</span>(<span class="ident">my_pid</span>.<span class="ident">pid</span>)
166
+        } <span class="kw">else</span> {
167
+            <span class="macro">panic</span><span class="macro">!</span>(<span class="string">&quot;Internal Error: I don&#39;t have a PID but I am running.&quot;</span>)
168
+        }
169
+    }
170
+
171
+    <span class="doccomment">/// Prüft ob das Prozess-Struct ein Elternprozess besitzt.</span>
172
+    <span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">has_parent</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
173
+        <span class="self">self</span>.<span class="ident">ppid</span> <span class="op">!=</span> <span class="number">0</span>
174
+    }
175
+
176
+    <span class="doccomment">/// Gibt den Elternprozess zurück.</span>
177
+    <span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">parent</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
178
+        <span class="ident">Process</span>::<span class="ident">new</span>(<span class="self">self</span>.<span class="ident">ppid</span>)
179
+    }
180
+
181
+    <span class="doccomment">/// Prüft ob das Prozess-Struct einen (entfernten) Elternprozess mit dem übergebenen pid hat.</span>
182
+    <span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">has_parent_with_pid</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">pid</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
183
+        <span class="kw">if</span> <span class="self">self</span>.<span class="ident">pid</span> <span class="op">==</span> <span class="ident">pid</span> {
184
+            <span class="kw">return</span> <span class="bool-val">true</span>;
185
+        }
186
+
187
+        <span class="kw">if</span> <span class="self">self</span>.<span class="ident">has_parent</span>() {
188
+            <span class="kw">return</span> <span class="self">self</span>.<span class="ident">parent</span>().<span class="ident">has_parent_with_pid</span>(<span class="ident">pid</span>);
189
+        }
190
+
191
+        <span class="bool-val">false</span>
192
+    }
193
+
194
+    <span class="doccomment">/// Gibt über Rekursion über die Eltern eine Prozesskette aus.</span>
195
+    <span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">print_recursive</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">to_pid</span>: <span class="ident">i32</span>, <span class="ident">output</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">String</span>) {
196
+
197
+        <span class="kw">if</span> <span class="ident">output</span>.<span class="ident">len</span>() <span class="op">==</span> <span class="number">0</span> {
198
+            <span class="kw-2">*</span><span class="ident">output</span> <span class="op">=</span> <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}({}){}&quot;</span>, <span class="self">self</span>.<span class="ident">name</span>, <span class="self">self</span>.<span class="ident">pid</span>, <span class="ident">output</span>);
199
+        } <span class="kw">else</span> {
200
+            <span class="kw-2">*</span><span class="ident">output</span> <span class="op">=</span> <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}({})---{}&quot;</span>, <span class="self">self</span>.<span class="ident">name</span>, <span class="self">self</span>.<span class="ident">pid</span>, <span class="ident">output</span>);
201
+        }
202
+
203
+        <span class="kw">if</span> <span class="self">self</span>.<span class="ident">has_parent</span>() <span class="op">&amp;&amp;</span> <span class="self">self</span>.<span class="ident">pid</span> <span class="op">!=</span> <span class="ident">to_pid</span> {
204
+            <span class="self">self</span>.<span class="ident">parent</span>().<span class="ident">print_recursive</span>(<span class="ident">to_pid</span>, <span class="ident">output</span>);
205
+        }
206
+    }
207
+}
208
+
209
+<span class="doccomment">/// Geht von eigenem Prozess aus und gibt die Prozesskette bis zum übergebenem PID aus</span>
210
+<span class="doccomment">/// und fängt mögliche Fehler ab.</span>
211
+<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">print</span>(<span class="ident">pid</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
212
+
213
+    <span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Err</span>(_) <span class="op">=</span> <span class="ident">pid</span>::<span class="ident">stat</span>(<span class="ident">pid</span>) {
214
+        <span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;Invalid PID&quot;</span>);
215
+        <span class="kw">return</span> <span class="bool-val">false</span>;
216
+    }
217
+
218
+    <span class="kw">let</span> <span class="ident">my_proc</span> <span class="op">=</span> <span class="ident">Process</span>::<span class="ident">me</span>();
219
+
220
+    <span class="kw">if</span> <span class="op">!</span><span class="ident">my_proc</span>.<span class="ident">has_parent_with_pid</span>(<span class="ident">pid</span>) {
221
+        <span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;This Process has no parent {}&quot;</span>, <span class="ident">pid</span>);
222
+        <span class="kw">return</span> <span class="bool-val">false</span>;
223
+    }
224
+
225
+    <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">output</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">new</span>();
226
+    <span class="ident">my_proc</span>.<span class="ident">print_recursive</span>(<span class="ident">pid</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">output</span>);
227
+    <span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">output</span>);
228
+
229
+    <span class="bool-val">true</span>
230
+}
231
+</pre>
232
+</section>
233
+    <section id='search' class="content hidden"></section>
234
+
235
+    <section class="footer"></section>
236
+
237
+    <aside id="help" class="hidden">
238
+        <div>
239
+            <h1 class="hidden">Help</h1>
240
+
241
+            <div class="shortcuts">
242
+                <h2>Keyboard Shortcuts</h2>
243
+
244
+                <dl>
245
+                    <dt>?</dt>
246
+                    <dd>Show this help dialog</dd>
247
+                    <dt>S</dt>
248
+                    <dd>Focus the search field</dd>
249
+                    <dt>&larrb;</dt>
250
+                    <dd>Move up in search results</dd>
251
+                    <dt>&rarrb;</dt>
252
+                    <dd>Move down in search results</dd>
253
+                    <dt>&#9166;</dt>
254
+                    <dd>Go to active search result</dd>
255
+                    <dt>+</dt>
256
+                    <dd>Collapse/expand all sections</dd>
257
+                </dl>
258
+            </div>
259
+
260
+            <div class="infos">
261
+                <h2>Search Tricks</h2>
262
+
263
+                <p>
264
+                    Prefix searches with a type followed by a colon (e.g.
265
+                    <code>fn:</code>) to restrict the search to a given type.
266
+                </p>
267
+
268
+                <p>
269
+                    Accepted types are: <code>fn</code>, <code>mod</code>,
270
+                    <code>struct</code>, <code>enum</code>,
271
+                    <code>trait</code>, <code>type</code>, <code>macro</code>,
272
+                    and <code>const</code>.
273
+                </p>
274
+
275
+                <p>
276
+                    Search functions by type signature (e.g.
277
+                    <code>vec -> usize</code> or <code>* -> vec</code>)
278
+                </p>
279
+            </div>
280
+        </div>
281
+    </aside>
282
+
283
+    
284
+
285
+    <script>
286
+        window.rootPath = "../../../";
287
+        window.currentCrate = "task1";
288
+    </script>
289
+    <script src="../../../main.js"></script>
290
+    <script defer src="../../../search-index.js"></script>
291
+</body>
292
+</html>

+ 170
- 0
hw5/task1/target/doc/src/task1/main.rs.html Целия файл

@@ -0,0 +1,170 @@
1
+<!DOCTYPE html>
2
+<html lang="en">
3
+<head>
4
+    <meta charset="utf-8">
5
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+    <meta name="generator" content="rustdoc">
7
+    <meta name="description" content="Source to the Rust file `src/main.rs`.">
8
+    <meta name="keywords" content="rust, rustlang, rust-lang">
9
+
10
+    <title>main.rs.html -- source</title>
11
+
12
+    <link rel="stylesheet" type="text/css" href="../../normalize.css">
13
+    <link rel="stylesheet" type="text/css" href="../../rustdoc.css">
14
+    <link rel="stylesheet" type="text/css" href="../../main.css">
15
+    
16
+
17
+    
18
+    
19
+</head>
20
+<body class="rustdoc source">
21
+    <!--[if lte IE 8]>
22
+    <div class="warning">
23
+        This old browser is unsupported and will most likely display funky
24
+        things.
25
+    </div>
26
+    <![endif]-->
27
+
28
+    
29
+
30
+    <nav class="sidebar">
31
+        
32
+        
33
+    </nav>
34
+
35
+    <nav class="sub">
36
+        <form class="search-form js-only">
37
+            <div class="search-container">
38
+                <input class="search-input" name="search"
39
+                       autocomplete="off"
40
+                       placeholder="Click or press ‘S’ to search, ‘?’ for more options…"
41
+                       type="search">
42
+            </div>
43
+        </form>
44
+    </nav>
45
+
46
+    <section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
47
+<span id="2"> 2</span>
48
+<span id="3"> 3</span>
49
+<span id="4"> 4</span>
50
+<span id="5"> 5</span>
51
+<span id="6"> 6</span>
52
+<span id="7"> 7</span>
53
+<span id="8"> 8</span>
54
+<span id="9"> 9</span>
55
+<span id="10">10</span>
56
+<span id="11">11</span>
57
+<span id="12">12</span>
58
+<span id="13">13</span>
59
+<span id="14">14</span>
60
+<span id="15">15</span>
61
+<span id="16">16</span>
62
+<span id="17">17</span>
63
+<span id="18">18</span>
64
+<span id="19">19</span>
65
+<span id="20">20</span>
66
+<span id="21">21</span>
67
+<span id="22">22</span>
68
+<span id="23">23</span>
69
+<span id="24">24</span>
70
+<span id="25">25</span>
71
+<span id="26">26</span>
72
+<span id="27">27</span>
73
+<span id="28">28</span>
74
+<span id="29">29</span>
75
+<span id="30">30</span>
76
+<span id="31">31</span>
77
+</pre><pre class="rust ">
78
+<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">procinfo</span>;
79
+<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">nix</span>;
80
+
81
+<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">env</span>::<span class="ident">args</span>;
82
+<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">process</span>;
83
+<span class="kw">use</span> <span class="ident">nix</span>::<span class="ident">unistd</span>::<span class="ident">getpid</span>;
84
+
85
+<span class="kw">mod</span> <span class="ident">unit_tests</span>;
86
+<span class="kw">mod</span> <span class="ident">zombie</span>;
87
+<span class="kw">mod</span> <span class="ident">child</span>;
88
+
89
+
90
+<span class="kw">fn</span> <span class="ident">main</span>() {
91
+    <span class="kw">let</span> <span class="ident">arguments</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">args</span>().<span class="ident">collect</span>();
92
+
93
+    <span class="kw">if</span> <span class="ident">arguments</span>.<span class="ident">len</span>() <span class="op">==</span> <span class="number">2</span> {
94
+
95
+        <span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">child</span>::<span class="ident">run_childs</span>(<span class="ident">i32</span>::<span class="ident">from</span>(<span class="ident">getpid</span>()), <span class="kw-2">&amp;</span><span class="ident">arguments</span>[<span class="number">1</span>]);
96
+        <span class="kw">match</span> <span class="ident">result</span> {
97
+            <span class="prelude-val">Ok</span>(_) <span class="op">=&gt;</span> {}
98
+            <span class="prelude-val">Err</span>(<span class="ident">e</span>) <span class="op">=&gt;</span> {
99
+                <span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">e</span>);
100
+                <span class="ident">process</span>::<span class="ident">exit</span>(<span class="number">1</span>)
101
+            }
102
+        }
103
+
104
+    } <span class="kw">else</span> {
105
+        <span class="ident">zombie</span>::<span class="ident">run_zombie</span>();
106
+    }
107
+
108
+}
109
+</pre>
110
+</section>
111
+    <section id='search' class="content hidden"></section>
112
+
113
+    <section class="footer"></section>
114
+
115
+    <aside id="help" class="hidden">
116
+        <div>
117
+            <h1 class="hidden">Help</h1>
118
+
119
+            <div class="shortcuts">
120
+                <h2>Keyboard Shortcuts</h2>
121
+
122
+                <dl>
123
+                    <dt>?</dt>
124
+                    <dd>Show this help dialog</dd>
125
+                    <dt>S</dt>
126
+                    <dd>Focus the search field</dd>
127
+                    <dt>&larrb;</dt>
128
+                    <dd>Move up in search results</dd>
129
+                    <dt>&rarrb;</dt>
130
+                    <dd>Move down in search results</dd>
131
+                    <dt>&#9166;</dt>
132
+                    <dd>Go to active search result</dd>
133
+                    <dt>+</dt>
134
+                    <dd>Collapse/expand all sections</dd>
135
+                </dl>
136
+            </div>
137
+
138
+            <div class="infos">
139
+                <h2>Search Tricks</h2>
140
+
141
+                <p>
142
+                    Prefix searches with a type followed by a colon (e.g.
143
+                    <code>fn:</code>) to restrict the search to a given type.
144
+                </p>
145
+
146
+                <p>
147
+                    Accepted types are: <code>fn</code>, <code>mod</code>,
148
+                    <code>struct</code>, <code>enum</code>,
149
+                    <code>trait</code>, <code>type</code>, <code>macro</code>,
150
+                    and <code>const</code>.
151
+                </p>
152
+
153
+                <p>
154
+                    Search functions by type signature (e.g.
155
+                    <code>vec -> usize</code> or <code>* -> vec</code>)
156
+                </p>
157
+            </div>
158
+        </div>
159
+    </aside>
160
+
161
+    
162
+
163
+    <script>
164
+        window.rootPath = "../../";
165
+        window.currentCrate = "task1";
166
+    </script>
167
+    <script src="../../main.js"></script>
168
+    <script defer src="../../search-index.js"></script>
169
+</body>
170
+</html>

+ 162
- 0
hw5/task1/target/doc/src/task1/unit_tests.rs.html Целия файл

@@ -0,0 +1,162 @@
1
+<!DOCTYPE html>
2
+<html lang="en">
3
+<head>
4
+    <meta charset="utf-8">
5
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+    <meta name="generator" content="rustdoc">
7
+    <meta name="description" content="Source to the Rust file `src/unit_tests.rs`.">
8
+    <meta name="keywords" content="rust, rustlang, rust-lang">
9
+
10
+    <title>unit_tests.rs.html -- source</title>
11
+
12
+    <link rel="stylesheet" type="text/css" href="../../normalize.css">
13
+    <link rel="stylesheet" type="text/css" href="../../rustdoc.css">
14
+    <link rel="stylesheet" type="text/css" href="../../main.css">
15
+    
16
+
17
+    
18
+    
19
+</head>
20
+<body class="rustdoc source">
21
+    <!--[if lte IE 8]>
22
+    <div class="warning">
23
+        This old browser is unsupported and will most likely display funky
24
+        things.
25
+    </div>
26
+    <![endif]-->
27
+
28
+    
29
+
30
+    <nav class="sidebar">
31
+        
32
+        
33
+    </nav>
34
+
35
+    <nav class="sub">
36
+        <form class="search-form js-only">
37
+            <div class="search-container">
38
+                <input class="search-input" name="search"
39
+                       autocomplete="off"
40
+                       placeholder="Click or press ‘S’ to search, ‘?’ for more options…"
41
+                       type="search">
42
+            </div>
43
+        </form>
44
+    </nav>
45
+
46
+    <section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
47
+<span id="2"> 2</span>
48
+<span id="3"> 3</span>
49
+<span id="4"> 4</span>
50
+<span id="5"> 5</span>
51
+<span id="6"> 6</span>
52
+<span id="7"> 7</span>
53
+<span id="8"> 8</span>
54
+<span id="9"> 9</span>
55
+<span id="10">10</span>
56
+<span id="11">11</span>
57
+<span id="12">12</span>
58
+<span id="13">13</span>
59
+<span id="14">14</span>
60
+<span id="15">15</span>
61
+<span id="16">16</span>
62
+<span id="17">17</span>
63
+<span id="18">18</span>
64
+<span id="19">19</span>
65
+<span id="20">20</span>
66
+<span id="21">21</span>
67
+<span id="22">22</span>
68
+<span id="23">23</span>
69
+<span id="24">24</span>
70
+<span id="25">25</span>
71
+<span id="26">26</span>
72
+<span id="27">27</span>
73
+</pre><pre class="rust ">
74
+<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
75
+<span class="kw">mod</span> <span class="ident">tests</span> {
76
+
77
+    <span class="kw">use</span> <span class="ident">procinfo</span>;
78
+    <span class="kw">use</span> <span class="ident">child</span>::<span class="kw-2">*</span>;
79
+
80
+    <span class="attribute">#[<span class="ident">test</span>]</span>
81
+    <span class="kw">fn</span> <span class="ident">test_zero_forks</span>() {
82
+        <span class="macro">assert_eq</span><span class="macro">!</span>(
83
+            <span class="ident">run_childs</span>(<span class="number">123</span>, <span class="string">&quot;0&quot;</span>),
84
+            <span class="prelude-val">Err</span>(<span class="string">&quot;Number of forks must not be zero.&quot;</span>.<span class="ident">to_string</span>())
85
+        )
86
+    }
87
+
88
+    <span class="attribute">#[<span class="ident">test</span>]</span>
89
+    <span class="kw">fn</span> <span class="ident">test_one_fork</span>() {
90
+        <span class="macro">assert_eq</span><span class="macro">!</span>(
91
+            <span class="ident">run_childs</span>(<span class="ident">procinfo</span>::<span class="ident">pid</span>::<span class="ident">stat_self</span>().<span class="ident">unwrap</span>().<span class="ident">pid</span>, <span class="string">&quot;1&quot;</span>),
92
+            <span class="prelude-val">Ok</span>(())
93
+        )
94
+    }
95
+
96
+    <span class="attribute">#[<span class="ident">test</span>]</span>
97
+    <span class="kw">fn</span> <span class="ident">test_wrong_pid</span>() {
98
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">run_childs</span>(<span class="number">2</span>, <span class="string">&quot;1&quot;</span>), <span class="prelude-val">Ok</span>(()))
99
+    }
100
+}
101
+</pre>
102
+</section>
103
+    <section id='search' class="content hidden"></section>
104
+
105
+    <section class="footer"></section>
106
+
107
+    <aside id="help" class="hidden">
108
+        <div>
109
+            <h1 class="hidden">Help</h1>
110
+
111
+            <div class="shortcuts">
112
+                <h2>Keyboard Shortcuts</h2>
113
+
114
+                <dl>
115
+                    <dt>?</dt>
116
+                    <dd>Show this help dialog</dd>
117
+                    <dt>S</dt>
118
+                    <dd>Focus the search field</dd>
119
+                    <dt>&larrb;</dt>
120
+                    <dd>Move up in search results</dd>
121
+                    <dt>&rarrb;</dt>
122
+                    <dd>Move down in search results</dd>
123
+                    <dt>&#9166;</dt>
124
+                    <dd>Go to active search result</dd>
125
+                    <dt>+</dt>
126
+                    <dd>Collapse/expand all sections</dd>
127
+                </dl>
128
+            </div>
129
+
130
+            <div class="infos">
131
+                <h2>Search Tricks</h2>
132
+
133
+                <p>
134
+                    Prefix searches with a type followed by a colon (e.g.
135
+                    <code>fn:</code>) to restrict the search to a given type.
136
+                </p>
137
+
138
+                <p>
139
+                    Accepted types are: <code>fn</code>, <code>mod</code>,
140
+                    <code>struct</code>, <code>enum</code>,
141
+                    <code>trait</code>, <code>type</code>, <code>macro</code>,
142
+                    and <code>const</code>.
143
+                </p>
144
+
145
+                <p>
146
+                    Search functions by type signature (e.g.
147
+                    <code>vec -> usize</code> or <code>* -> vec</code>)
148
+                </p>
149
+            </div>
150
+        </div>
151
+    </aside>
152
+
153
+    
154
+
155
+    <script>
156
+        window.rootPath = "../../";
157
+        window.currentCrate = "task1";
158
+    </script>
159
+    <script src="../../main.js"></script>
160
+    <script defer src="../../search-index.js"></script>
161
+</body>
162
+</html>

+ 168
- 0
hw5/task1/target/doc/src/task1/zombie/mod.rs.html Целия файл

@@ -0,0 +1,168 @@
1
+<!DOCTYPE html>
2
+<html lang="en">
3
+<head>
4
+    <meta charset="utf-8">
5
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+    <meta name="generator" content="rustdoc">
7
+    <meta name="description" content="Source to the Rust file `src/zombie/mod.rs`.">
8
+    <meta name="keywords" content="rust, rustlang, rust-lang">
9
+
10
+    <title>mod.rs.html -- source</title>
11
+
12
+    <link rel="stylesheet" type="text/css" href="../../../normalize.css">
13
+    <link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
14
+    <link rel="stylesheet" type="text/css" href="../../../main.css">
15
+    
16
+
17
+    
18
+    
19
+</head>
20
+<body class="rustdoc source">
21
+    <!--[if lte IE 8]>
22
+    <div class="warning">
23
+        This old browser is unsupported and will most likely display funky
24
+        things.
25
+    </div>
26
+    <![endif]-->
27
+
28
+    
29
+
30
+    <nav class="sidebar">
31
+        
32
+        
33
+    </nav>
34
+
35
+    <nav class="sub">
36
+        <form class="search-form js-only">
37
+            <div class="search-container">
38
+                <input class="search-input" name="search"
39
+                       autocomplete="off"
40
+                       placeholder="Click or press ‘S’ to search, ‘?’ for more options…"
41
+                       type="search">
42
+            </div>
43
+        </form>
44
+    </nav>
45
+
46
+    <section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
47
+<span id="2"> 2</span>
48
+<span id="3"> 3</span>
49
+<span id="4"> 4</span>
50
+<span id="5"> 5</span>
51
+<span id="6"> 6</span>
52
+<span id="7"> 7</span>
53
+<span id="8"> 8</span>
54
+<span id="9"> 9</span>
55
+<span id="10">10</span>
56
+<span id="11">11</span>
57
+<span id="12">12</span>
58
+<span id="13">13</span>
59
+<span id="14">14</span>
60
+<span id="15">15</span>
61
+<span id="16">16</span>
62
+<span id="17">17</span>
63
+<span id="18">18</span>
64
+<span id="19">19</span>
65
+<span id="20">20</span>
66
+<span id="21">21</span>
67
+<span id="22">22</span>
68
+<span id="23">23</span>
69
+<span id="24">24</span>
70
+<span id="25">25</span>
71
+<span id="26">26</span>
72
+<span id="27">27</span>
73
+<span id="28">28</span>
74
+<span id="29">29</span>
75
+<span id="30">30</span>
76
+</pre><pre class="rust ">
77
+<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">process</span>::<span class="ident">Command</span>;
78
+<span class="kw">use</span> <span class="ident">std</span>::{<span class="ident">thread</span>, <span class="ident">time</span>};
79
+<span class="kw">use</span> <span class="ident">nix</span>::<span class="ident">sys</span>::<span class="ident">signal</span>::<span class="kw-2">*</span>;
80
+<span class="kw">use</span> <span class="ident">nix</span>::<span class="ident">unistd</span>::{<span class="ident">fork</span>, <span class="ident">ForkResult</span>};
81
+
82
+<span class="doccomment">/// This function creates a **Zombie Process** and shows it using `ps t`.</span>
83
+<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">run_zombie</span>() {
84
+    <span class="kw">match</span> <span class="ident">fork</span>().<span class="ident">expect</span>(<span class="string">&quot;Fork failed&quot;</span>) {
85
+
86
+        <span class="comment">// In case this is the Parent process, kill the new child.</span>
87
+        <span class="ident">ForkResult</span>::<span class="ident">Parent</span> { <span class="ident">child</span> } <span class="op">=&gt;</span> {
88
+            <span class="ident">kill</span>(<span class="ident">child</span>, <span class="ident">SIGKILL</span>).<span class="ident">expect</span>(<span class="string">&quot;Kill failed&quot;</span>);
89
+        }
90
+
91
+        <span class="comment">// In case this is the Child process, wait until killed.</span>
92
+        <span class="ident">ForkResult</span>::<span class="ident">Child</span> <span class="op">=&gt;</span> {
93
+            <span class="ident">thread</span>::<span class="ident">sleep</span>(
94
+                <span class="ident">time</span>::<span class="ident">Duration</span>::<span class="ident">new</span>(<span class="number">5000</span>, <span class="number">0</span>) <span class="comment">// Wait for a long time</span>
95
+            );
96
+        }
97
+    }
98
+
99
+    <span class="comment">// Run `ps t` to show the Zombie Process</span>
100
+    <span class="kw">let</span> <span class="ident">output</span> <span class="op">=</span> <span class="ident">Command</span>::<span class="ident">new</span>(<span class="string">&quot;ps&quot;</span>).<span class="ident">arg</span>(<span class="string">&quot;t&quot;</span>).<span class="ident">output</span>().<span class="ident">expect</span>(
101
+        <span class="string">&quot;Error in run_zombie&quot;</span>,
102
+    );
103
+
104
+    <span class="comment">// Print the output of `ps t` to `stdout`</span>
105
+    <span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">String</span>::<span class="ident">from_utf8_lossy</span>(<span class="kw-2">&amp;</span><span class="ident">output</span>.<span class="ident">stdout</span>));
106
+}
107
+</pre>
108
+</section>
109
+    <section id='search' class="content hidden"></section>
110
+
111
+    <section class="footer"></section>
112
+
113
+    <aside id="help" class="hidden">
114
+        <div>
115
+            <h1 class="hidden">Help</h1>
116
+
117
+            <div class="shortcuts">
118
+                <h2>Keyboard Shortcuts</h2>
119
+
120
+                <dl>
121
+                    <dt>?</dt>
122
+                    <dd>Show this help dialog</dd>
123
+                    <dt>S</dt>
124
+                    <dd>Focus the search field</dd>
125
+                    <dt>&larrb;</dt>
126
+                    <dd>Move up in search results</dd>
127
+                    <dt>&rarrb;</dt>
128
+                    <dd>Move down in search results</dd>
129
+                    <dt>&#9166;</dt>
130
+                    <dd>Go to active search result</dd>
131
+                    <dt>+</dt>
132
+                    <dd>Collapse/expand all sections</dd>
133
+                </dl>
134
+            </div>
135
+
136
+            <div class="infos">
137
+                <h2>Search Tricks</h2>
138
+
139
+                <p>
140
+                    Prefix searches with a type followed by a colon (e.g.
141
+                    <code>fn:</code>) to restrict the search to a given type.
142
+                </p>
143
+
144
+                <p>
145
+                    Accepted types are: <code>fn</code>, <code>mod</code>,
146
+                    <code>struct</code>, <code>enum</code>,
147
+                    <code>trait</code>, <code>type</code>, <code>macro</code>,
148
+                    and <code>const</code>.
149
+                </p>
150
+
151
+                <p>
152
+                    Search functions by type signature (e.g.
153
+                    <code>vec -> usize</code> or <code>* -> vec</code>)
154
+                </p>
155
+            </div>
156
+        </div>
157
+    </aside>
158
+
159
+    
160
+
161
+    <script>
162
+        window.rootPath = "../../../";
163
+        window.currentCrate = "task1";
164
+    </script>
165
+    <script src="../../../main.js"></script>
166
+    <script defer src="../../../search-index.js"></script>
167
+</body>
168
+</html>

+ 112
- 0
hw5/task1/target/doc/task1/index.html Целия файл

@@ -0,0 +1,112 @@
1
+<!DOCTYPE html>
2
+<html lang="en">
3
+<head>
4
+    <meta charset="utf-8">
5
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+    <meta name="generator" content="rustdoc">
7
+    <meta name="description" content="API documentation for the Rust `task1` crate.">
8
+    <meta name="keywords" content="rust, rustlang, rust-lang, task1">
9
+
10
+    <title>task1 - Rust</title>
11
+
12
+    <link rel="stylesheet" type="text/css" href="../normalize.css">
13
+    <link rel="stylesheet" type="text/css" href="../rustdoc.css">
14
+    <link rel="stylesheet" type="text/css" href="../main.css">
15
+    
16
+
17
+    
18
+    
19
+</head>
20
+<body class="rustdoc mod">
21
+    <!--[if lte IE 8]>
22
+    <div class="warning">
23
+        This old browser is unsupported and will most likely display funky
24
+        things.
25
+    </div>
26
+    <![endif]-->
27
+
28
+    
29
+
30
+    <nav class="sidebar">
31
+        
32
+        <p class='location'>Crate task1</p><p class='location'></p><script>window.sidebarCurrent = {name: 'task1', ty: 'mod', relpath: '../'};</script>
33
+    </nav>
34
+
35
+    <nav class="sub">
36
+        <form class="search-form js-only">
37
+            <div class="search-container">
38
+                <input class="search-input" name="search"
39
+                       autocomplete="off"
40
+                       placeholder="Click or press ‘S’ to search, ‘?’ for more options…"
41
+                       type="search">
42
+            </div>
43
+        </form>
44
+    </nav>
45
+
46
+    <section id='main' class="content">
47
+<h1 class='fqn'><span class='in-band'>Crate <a class="mod" href=''>task1</a></span><span class='out-of-band'><span id='render-detail'>
48
+                   <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">
49
+                       [<span class='inner'>&#x2212;</span>]
50
+                   </a>
51
+               </span><a class='srclink' href='../src/task1/main.rs.html#1-31' title='goto source code'>[src]</a></span></h1>
52
+</section>
53
+    <section id='search' class="content hidden"></section>
54
+
55
+    <section class="footer"></section>
56
+
57
+    <aside id="help" class="hidden">
58
+        <div>
59
+            <h1 class="hidden">Help</h1>
60
+
61
+            <div class="shortcuts">
62
+                <h2>Keyboard Shortcuts</h2>
63
+
64
+                <dl>
65
+                    <dt>?</dt>
66
+                    <dd>Show this help dialog</dd>
67
+                    <dt>S</dt>
68
+                    <dd>Focus the search field</dd>
69
+                    <dt>&larrb;</dt>
70
+                    <dd>Move up in search results</dd>
71
+                    <dt>&rarrb;</dt>
72
+                    <dd>Move down in search results</dd>
73
+                    <dt>&#9166;</dt>
74
+                    <dd>Go to active search result</dd>
75
+                    <dt>+</dt>
76
+                    <dd>Collapse/expand all sections</dd>
77
+                </dl>
78
+            </div>
79
+
80
+            <div class="infos">
81
+                <h2>Search Tricks</h2>
82
+
83
+                <p>
84
+                    Prefix searches with a type followed by a colon (e.g.
85
+                    <code>fn:</code>) to restrict the search to a given type.
86
+                </p>
87
+
88
+                <p>
89
+                    Accepted types are: <code>fn</code>, <code>mod</code>,
90
+                    <code>struct</code>, <code>enum</code>,
91
+                    <code>trait</code>, <code>type</code>, <code>macro</code>,
92
+                    and <code>const</code>.
93
+                </p>
94
+
95
+                <p>
96
+                    Search functions by type signature (e.g.
97
+                    <code>vec -> usize</code> or <code>* -> vec</code>)
98
+                </p>
99
+            </div>
100
+        </div>
101
+    </aside>
102
+
103
+    
104
+
105
+    <script>
106
+        window.rootPath = "../";
107
+        window.currentCrate = "task1";
108
+    </script>
109
+    <script src="../main.js"></script>
110
+    <script defer src="../search-index.js"></script>
111
+</body>
112
+</html>

+ 1
- 0
hw5/task1/target/doc/task1/sidebar-items.js Целия файл

@@ -0,0 +1 @@
1
+initSidebarItems({});

Loading…
Отказ
Запис