--- a/Cargo.lock
+++ b/Cargo.lock
@@ -330,63 +330,46 @@ name = "cookie"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "core-foundation"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "core-foundation"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"core-foundation-sys 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "core-foundation-sys"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "core-foundation-sys"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "core-graphics"
-version = "0.13.0"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "core-foundation 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
"foreign-types 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "core-text"
-version = "9.2.0"
+version = "10.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "core-foundation 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "core-graphics 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
"foreign-types 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "cose"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2345,19 +2328,19 @@ dependencies = [
name = "webrender"
version = "0.57.2"
dependencies = [
"app_units 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "core-text 9.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "core-foundation 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "core-graphics 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "core-text 10.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"dwrote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2374,34 +2357,34 @@ dependencies = [
[[package]]
name = "webrender_api"
version = "0.57.2"
dependencies = [
"app_units 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "core-foundation 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "core-graphics 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
"dwrote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.66 (git+https://github.com/servo/serde?branch=deserialize_from_enums8)",
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "webrender_bindings"
version = "0.1.0"
dependencies = [
"app_units 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "core-foundation 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "core-graphics 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
"dwrote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)",
"foreign-types 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"nsstring 0.1.0",
"rayon 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2558,22 +2541,20 @@ dependencies = [
"checksum cc 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "2b4911e4bdcb4100c7680e7e854ff38e23f1b34d4d9e079efae3da2801341ffc"
"checksum cexpr 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393a5f0088efbe41f9d1fcd062f24e83c278608420e62109feb2c8abee07de7d"
"checksum cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de"
"checksum chrono 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)" = "9213f7cd7c27e95c2b57c49f0e69b1ea65b27138da84a170133fd21b07659c00"
"checksum clang-sys 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d7f7c04e52c35222fffcc3a115b5daf5f7e2bfb71c13c4e2321afe1fc71859c2"
"checksum clap 2.31.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f0f16b89cbb9ee36d87483dc939fe9f1e13c05898d56d7b230a0d4dff033a536"
"checksum cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)" = "56d741ea7a69e577f6d06b36b7dff4738f680593dc27a701ffa8506b73ce28bb"
"checksum cookie 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "746858cae4eae40fff37e1998320068df317bc247dc91a67c6cfa053afdc2abb"
-"checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980"
"checksum core-foundation 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c7caa6cb9e76ddddbea09a03266d6b3bc98cd41e9fb9b017c473e7cca593ec25"
-"checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa"
"checksum core-foundation-sys 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b2a53cce0ddcf7e7e1f998738d757d5a3bf08bf799a180e50ebe50d298f52f5a"
-"checksum core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fb0ed45fdc32f9ab426238fba9407dfead7bacd7900c9b4dd3f396f46eafdae3"
-"checksum core-text 9.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2bd581c37283d0c23311d179aefbb891f2324ee0405da58a26e8594ab76e5748"
+"checksum core-graphics 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e54c4ab33705fa1fc8af375bb7929d68e1c1546c1ecef408966d8c3e49a1d84a"
+"checksum core-text 10.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "81f59bff773954e5cd058a3f5983406b52bec7cc65202bef340ba64a0c40ac91"
"checksum cose 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "72fa26cb151d3ae4b70f63d67d0fed57ce04220feafafbae7f503bef7aae590d"
"checksum cose-c 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "49726015ab0ca765144fcca61e4a7a543a16b795a777fa53f554da2fffff9a94"
"checksum crc 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bd5d02c0aac6bd68393ed69e00bbc2457f3e89075c6349db7189618dc4ddc1d7"
"checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3"
"checksum crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "927121f5407de9956180ff5e936fe3cf4324279280001cd56b669d28ee7e9150"
"checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9"
"checksum cssparser 0.24.0 (registry+https://github.com/rust-lang/crates.io-index)" = "495beddc39b1987b8e9f029354eccbd5ef88eb5f1cd24badb764dce338acf2e0"
"checksum cssparser-macros 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f3a5383ae18dbfdeb569ed62019f5bddb2a95cd2d3833313c475a0d014777805"
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/.cargo-checksum.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"files":{"Cargo.toml":"01f34fc5a612332c1a3aca9fcd89cd254afa02a27e6e538b0a2fa4280ef4fa66","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","src/array.rs":"d7af185408d937354f484e3ef97cb1a56e06b39965cbdc89de4bcdafb1d57f06","src/base.rs":"3032ea5253b2d4bd323d0656fc863d1e787642121702ad741c6055d96d0b3d5c","src/boolean.rs":"f5b4d295aaf6cc3681212afebeae2974c5d551125badcc066e6089ac0d2a0873","src/bundle.rs":"de092198bbc3486f617131e9f5f321812c4839da505409abaa70217f05f40450","src/data.rs":"a1d7e6430c745731fc7b2aee49af9f14e79c8a288951c82ea6507689a3356af8","src/date.rs":"a02f6cca7b6e8fbabc7713177429012658dba5146556e14a08e7baaf81958d83","src/dictionary.rs":"429005bc00890b655c8bdf0d7361eb20187ba8725552261aeaf52690c3f2683f","src/error.rs":"22c21087d9c2c103d1bcb2c4af33b684317bbda5d4747902e510d410f8c1a14b","src/filedescriptor.rs":"6ecd8570fad620fc20726539fe11e9f914e3742af9f3208a31727e89a4cd92ba","src/lib.rs":"900179d9ada4b8f000ced4121a9981cdf5ea83277e812177f4126779b818f50c","src/number.rs":"0c2842b8ea973a2c12173a13544b7d49472df11e166540ca5c28f38f54a746f6","src/propertylist.rs":"2ef4b1f44f688fd49ab810a0c8eccc7c40320fa16f93ff1453edcd2fd0d7200f","src/runloop.rs":"bb400ffe84949c4faa4a91f196aeb0a88b31984d206cd236c9daf27005b7744a","src/set.rs":"f23edb8fc009c24600f017131ab734e91129907248713618be89a0719622a9e9","src/string.rs":"50c08f0504c718576e4f2397218a963ab701de0214422dc82e1991d4ab9a00e3","src/timezone.rs":"65859378232ee55f04bc4544b88f5dbc21f5db01bd16f2df3e82136ee3ce26b4","src/url.rs":"ee5370a1ba88823ee0eaa8615c5dafd55cedd7bd50172e9f2caa52ed305e2233","src/uuid.rs":"c532363a1a322a88e195f8606e613a68012708454b0d61ffe7abce432ec68596","tests/use_macro_outside_crate.rs":"452a1329d304bf0301929278aab275cc9b6d57e4ae799b4acd6f2210b1ed0a49"},"package":"286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980"}
\ No newline at end of file
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/Cargo.toml
+++ /dev/null
@@ -1,39 +0,0 @@
-# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
-#
-# When uploading crates to the registry Cargo will automatically
-# "normalize" Cargo.toml files for maximal compatibility
-# with all versions of Cargo and also rewrite `path` dependencies
-# to registry (e.g. crates.io) dependencies
-#
-# If you believe there's an error in this file please file an
-# issue against the rust-lang/cargo repository. If you're
-# editing this file be aware that the upstream Cargo.toml
-# will likely look very different (and much more reasonable)
-
-[package]
-name = "core-foundation"
-version = "0.5.1"
-authors = ["The Servo Project Developers"]
-description = "Bindings to Core Foundation for OS X"
-homepage = "https://github.com/servo/core-foundation-rs"
-license = "MIT / Apache-2.0"
-repository = "https://github.com/servo/core-foundation-rs"
-[dependencies.chrono]
-version = "0.4"
-optional = true
-
-[dependencies.core-foundation-sys]
-version = "0.5.1"
-
-[dependencies.libc]
-version = "0.2"
-
-[dependencies.uuid]
-version = "0.5"
-optional = true
-
-[features]
-mac_os_10_7_support = ["core-foundation-sys/mac_os_10_7_support"]
-mac_os_10_8_features = ["core-foundation-sys/mac_os_10_8_features"]
-with-chrono = ["chrono"]
-with-uuid = ["uuid"]
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/LICENSE-APACHE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
-Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/LICENSE-MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-Copyright (c) 2012-2013 Mozilla Foundation
-
-Permission is hereby granted, free of charge, to any
-person obtaining a copy of this software and associated
-documentation files (the "Software"), to deal in the
-Software without restriction, including without
-limitation the rights to use, copy, modify, merge,
-publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software
-is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice
-shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
-ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
-TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
-PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
-SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
-IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/array.rs
+++ /dev/null
@@ -1,289 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! Heterogeneous immutable arrays.
-
-pub use core_foundation_sys::array::*;
-pub use core_foundation_sys::base::CFIndex;
-use core_foundation_sys::base::{CFTypeRef, CFRelease, kCFAllocatorDefault};
-use libc::c_void;
-use std::mem;
-use std::mem::ManuallyDrop;
-use std::marker::PhantomData;
-use std;
-use std::ops::Deref;
-use std::fmt::{Debug, Formatter};
-
-use base::{CFIndexConvertible, TCFType, TCFTypeRef, CFRange};
-
-/// A heterogeneous immutable array.
-pub struct CFArray<T = *const c_void>(CFArrayRef, PhantomData<T>);
-
-/// A reference to an element inside the array
-pub struct ItemRef<'a, T: 'a>(ManuallyDrop<T>, PhantomData<&'a T>);
-
-impl<'a, T> Deref for ItemRef<'a, T> {
- type Target = T;
-
- fn deref(&self) -> &T {
- &self.0
- }
-}
-
-impl<'a, T: Debug> Debug for ItemRef<'a, T> {
- fn fmt(&self, f: &mut Formatter) -> Result<(), std::fmt::Error> {
- self.0.fmt(f)
- }
-}
-
-/// A trait describing how to convert from the stored *const c_void to the desired T
-pub unsafe trait FromVoid {
- unsafe fn from_void<'a>(x: *const c_void) -> ItemRef<'a, Self> where Self: std::marker::Sized;
-}
-
-unsafe impl FromVoid for u32 {
- unsafe fn from_void<'a>(x: *const c_void) -> ItemRef<'a, Self> {
- // Functions like CGFontCopyTableTags treat the void*'s as u32's
- // so we convert by casting directly
- ItemRef(ManuallyDrop::new(x as u32), PhantomData)
- }
-}
-
-unsafe impl<T: TCFType> FromVoid for T {
- unsafe fn from_void<'a>(x: *const c_void) -> ItemRef<'a, Self> {
- ItemRef(ManuallyDrop::new(TCFType::wrap_under_create_rule(T::Ref::from_void_ptr(x))), PhantomData)
- }
-}
-
-impl<T> Drop for CFArray<T> {
- fn drop(&mut self) {
- unsafe { CFRelease(self.as_CFTypeRef()) }
- }
-}
-
-pub struct CFArrayIterator<'a, T: 'a> {
- array: &'a CFArray<T>,
- index: CFIndex,
- len: CFIndex,
-}
-
-impl<'a, T: FromVoid> Iterator for CFArrayIterator<'a, T> {
- type Item = ItemRef<'a, T>;
-
- fn next(&mut self) -> Option<ItemRef<'a, T>> {
- if self.index >= self.len {
- None
- } else {
- let value = unsafe { self.array.get_unchecked(self.index) };
- self.index += 1;
- Some(value)
- }
- }
-}
-
-impl<'a, T: FromVoid> ExactSizeIterator for CFArrayIterator<'a, T> {
- fn len(&self) -> usize {
- (self.array.len() - self.index) as usize
- }
-}
-
-impl_TCFTypeGeneric!(CFArray, CFArrayRef, CFArrayGetTypeID);
-impl_CFTypeDescriptionGeneric!(CFArray);
-
-impl<T> CFArray<T> {
- /// Creates a new `CFArray` with the given elements, which must be `CFType` objects.
- pub fn from_CFTypes(elems: &[T]) -> CFArray<T> where T: TCFType {
- unsafe {
- let elems: Vec<CFTypeRef> = elems.iter().map(|elem| elem.as_CFTypeRef()).collect();
- let array_ref = CFArrayCreate(kCFAllocatorDefault,
- mem::transmute(elems.as_ptr()),
- elems.len().to_CFIndex(),
- &kCFTypeArrayCallBacks);
- TCFType::wrap_under_create_rule(array_ref)
- }
- }
-
- #[inline]
- pub fn to_untyped(&self) -> CFArray {
- unsafe { CFArray::wrap_under_get_rule(self.0) }
- }
-
- /// Returns the same array, but with the type reset to void pointers.
- /// Equal to `to_untyped`, but is faster since it does not increment the retain count.
- #[inline]
- pub fn into_untyped(self) -> CFArray {
- let reference = self.0;
- mem::forget(self);
- unsafe { CFArray::wrap_under_create_rule(reference) }
- }
-
- /// Iterates over the elements of this `CFArray`.
- ///
- /// Careful; the loop body must wrap the reference properly. Generally, when array elements are
- /// Core Foundation objects (not always true), they need to be wrapped with
- /// `TCFType::wrap_under_get_rule()`.
- #[inline]
- pub fn iter<'a>(&'a self) -> CFArrayIterator<'a, T> {
- CFArrayIterator {
- array: self,
- index: 0,
- len: self.len(),
- }
- }
-
- #[inline]
- pub fn len(&self) -> CFIndex {
- unsafe {
- CFArrayGetCount(self.0)
- }
- }
-
- #[inline]
- pub unsafe fn get_unchecked<'a>(&'a self, index: CFIndex) -> ItemRef<'a, T> where T: FromVoid {
- T::from_void(CFArrayGetValueAtIndex(self.0, index))
- }
-
- #[inline]
- pub fn get<'a>(&'a self, index: CFIndex) -> Option<ItemRef<'a, T>> where T: FromVoid {
- if index < self.len() {
- Some(unsafe { T::from_void(CFArrayGetValueAtIndex(self.0, index)) } )
- } else {
- None
- }
- }
-
- pub fn get_values(&self, range: CFRange) -> Vec<*const c_void> {
- let mut vec = Vec::with_capacity(range.length as usize);
- unsafe {
- CFArrayGetValues(self.0, range, vec.as_mut_ptr());
- vec.set_len(range.length as usize);
- vec
- }
- }
-
- pub fn get_all_values(&self) -> Vec<*const c_void> {
- self.get_values(CFRange {
- location: 0,
- length: self.len()
- })
- }
-}
-
-impl<'a, T: FromVoid> IntoIterator for &'a CFArray<T> {
- type Item = ItemRef<'a, T>;
- type IntoIter = CFArrayIterator<'a, T>;
-
- fn into_iter(self) -> CFArrayIterator<'a, T> {
- self.iter()
- }
-}
-
-#[cfg(test)]
-mod tests {
- use super::*;
- use std::mem;
- use base::CFType;
-
- #[test]
- fn to_untyped_correct_retain_count() {
- let array = CFArray::<CFType>::from_CFTypes(&[]);
- assert_eq!(array.retain_count(), 1);
-
- let untyped_array = array.to_untyped();
- assert_eq!(array.retain_count(), 2);
- assert_eq!(untyped_array.retain_count(), 2);
-
- mem::drop(array);
- assert_eq!(untyped_array.retain_count(), 1);
- }
-
- #[test]
- fn into_untyped() {
- let array = CFArray::<CFType>::from_CFTypes(&[]);
- let array2 = array.to_untyped();
- assert_eq!(array.retain_count(), 2);
-
- let untyped_array = array.into_untyped();
- assert_eq!(untyped_array.retain_count(), 2);
-
- mem::drop(array2);
- assert_eq!(untyped_array.retain_count(), 1);
- }
-
- #[test]
- fn borrow() {
- use string::CFString;
-
- let string = CFString::from_static_string("bar");
- assert_eq!(string.retain_count(), 1);
- let x;
- {
- let arr: CFArray<CFString> = CFArray::from_CFTypes(&[string]);
- {
- let p = arr.get(0).unwrap();
- assert_eq!(p.retain_count(), 1);
- }
- {
- x = arr.get(0).unwrap().clone();
- assert_eq!(x.retain_count(), 2);
- assert_eq!(x.to_string(), "bar");
- }
- }
- assert_eq!(x.retain_count(), 1);
- }
-
- #[test]
- fn should_box_and_unbox() {
- use number::CFNumber;
-
- let n0 = CFNumber::from(0);
- let n1 = CFNumber::from(1);
- let n2 = CFNumber::from(2);
- let n3 = CFNumber::from(3);
- let n4 = CFNumber::from(4);
- let n5 = CFNumber::from(5);
-
- let arr = CFArray::from_CFTypes(&[
- n0.as_CFType(),
- n1.as_CFType(),
- n2.as_CFType(),
- n3.as_CFType(),
- n4.as_CFType(),
- n5.as_CFType(),
- ]);
-
- assert!(arr.get_all_values() == &[n0.as_CFTypeRef(),
- n1.as_CFTypeRef(),
- n2.as_CFTypeRef(),
- n3.as_CFTypeRef(),
- n4.as_CFTypeRef(),
- n5.as_CFTypeRef()]);
-
- let mut sum = 0;
-
- let mut iter = arr.iter();
- assert_eq!(iter.len(), 6);
- assert!(iter.next().is_some());
- assert_eq!(iter.len(), 5);
-
- for elem in iter {
- let number: CFNumber = elem.downcast::<CFNumber>().unwrap();
- sum += number.to_i64().unwrap()
- }
-
- assert!(sum == 15);
-
- for elem in arr.iter() {
- let number: CFNumber = elem.downcast::<CFNumber>().unwrap();
- sum += number.to_i64().unwrap()
- }
-
- assert!(sum == 30);
- }
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/base.rs
+++ /dev/null
@@ -1,293 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use std::fmt;
-use std::mem;
-
-pub use core_foundation_sys::base::*;
-
-use string::CFString;
-
-pub trait CFIndexConvertible {
- /// Always use this method to construct a `CFIndex` value. It performs bounds checking to
- /// ensure the value is in range.
- fn to_CFIndex(self) -> CFIndex;
-}
-
-impl CFIndexConvertible for usize {
- #[inline]
- fn to_CFIndex(self) -> CFIndex {
- let max_CFIndex = CFIndex::max_value();
- if self > (max_CFIndex as usize) {
- panic!("value out of range")
- }
- self as CFIndex
- }
-}
-
-declare_TCFType!{
- /// Superclass of all Core Foundation objects.
- CFType, CFTypeRef
-}
-
-impl CFType {
- /// Try to downcast the `CFType` to a subclass. Checking if the instance is the
- /// correct subclass happens at runtime and `None` is returned if it is not the correct type.
- /// Works similar to [`Box::downcast`] and [`CFPropertyList::downcast`].
- ///
- /// # Examples
- ///
- /// ```
- /// # use core_foundation::string::CFString;
- /// # use core_foundation::boolean::CFBoolean;
- /// # use core_foundation::base::{CFType, TCFType};
- /// #
- /// // Create a string.
- /// let string: CFString = CFString::from_static_string("FooBar");
- /// // Cast it up to a CFType.
- /// let cf_type: CFType = string.as_CFType();
- /// // Cast it down again.
- /// assert!(cf_type.downcast::<CFString>().unwrap().to_string() == "FooBar");
- /// // Casting it to some other type will yield `None`
- /// assert!(cf_type.downcast::<CFBoolean>().is_none());
- /// ```
- ///
- /// [`Box::downcast`]: https://doc.rust-lang.org/std/boxed/struct.Box.html#method.downcast
- /// [`CFPropertyList::downcast`]: ../propertylist/struct.CFPropertyList.html#method.downcast
- #[inline]
- pub fn downcast<T: TCFType>(&self) -> Option<T> {
- if self.instance_of::<T>() {
- unsafe {
- let reference = T::Ref::from_void_ptr(self.0);
- Some(T::wrap_under_get_rule(reference))
- }
- } else {
- None
- }
- }
-
- /// Similar to [`downcast`], but consumes self and can thus avoid touching the retain count.
- ///
- /// [`downcast`]: #method.downcast
- #[inline]
- pub fn downcast_into<T: TCFType>(self) -> Option<T> {
- if self.instance_of::<T>() {
- unsafe {
- let reference = T::Ref::from_void_ptr(self.0);
- mem::forget(self);
- Some(T::wrap_under_create_rule(reference))
- }
- } else {
- None
- }
- }
-}
-
-impl fmt::Debug for CFType {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- let desc = unsafe {
- CFString::wrap_under_create_rule(CFCopyDescription(self.0))
- };
- desc.fmt(f)
- }
-}
-
-impl Clone for CFType {
- #[inline]
- fn clone(&self) -> CFType {
- unsafe {
- TCFType::wrap_under_get_rule(self.0)
- }
- }
-}
-
-impl PartialEq for CFType {
- #[inline]
- fn eq(&self, other: &CFType) -> bool {
- unsafe {
- CFEqual(self.as_CFTypeRef(), other.as_CFTypeRef()) != 0
- }
- }
-}
-
-declare_TCFType!(CFAllocator, CFAllocatorRef);
-impl_TCFType!(CFAllocator, CFAllocatorRef, CFAllocatorGetTypeID);
-
-impl CFAllocator {
- #[inline]
- pub fn new(mut context: CFAllocatorContext) -> CFAllocator {
- unsafe {
- let allocator_ref = CFAllocatorCreate(kCFAllocatorDefault, &mut context);
- TCFType::wrap_under_create_rule(allocator_ref)
- }
- }
-}
-
-
-/// All Core Foundation types implement this trait. The associated type `Ref` specifies the
-/// associated Core Foundation type: e.g. for `CFType` this is `CFTypeRef`; for `CFArray` this is
-/// `CFArrayRef`.
-pub trait TCFType {
- /// The reference type wrapped inside this type.
- type Ref: TCFTypeRef;
-
- /// Returns the object as its concrete TypeRef.
- fn as_concrete_TypeRef(&self) -> Self::Ref;
-
- /// Returns an instance of the object, wrapping the underlying `CFTypeRef` subclass. Use this
- /// when following Core Foundation's "Create Rule". The reference count is *not* bumped.
- unsafe fn wrap_under_create_rule(obj: Self::Ref) -> Self;
-
- /// Returns the type ID for this class.
- fn type_id() -> CFTypeID;
-
- /// Returns the object as a wrapped `CFType`. The reference count is incremented by one.
- #[inline]
- fn as_CFType(&self) -> CFType {
- unsafe {
- TCFType::wrap_under_get_rule(self.as_CFTypeRef())
- }
- }
-
- /// Returns the object as a wrapped `CFType`. Consumes self and avoids changing the reference
- /// count.
- #[inline]
- fn into_CFType(self) -> CFType
- where
- Self: Sized,
- {
- let reference = self.as_CFTypeRef();
- mem::forget(self);
- unsafe { TCFType::wrap_under_create_rule(reference) }
- }
-
- /// Returns the object as a raw `CFTypeRef`. The reference count is not adjusted.
- fn as_CFTypeRef(&self) -> CFTypeRef;
-
- /// Returns an instance of the object, wrapping the underlying `CFTypeRef` subclass. Use this
- /// when following Core Foundation's "Get Rule". The reference count *is* bumped.
- unsafe fn wrap_under_get_rule(reference: Self::Ref) -> Self;
-
- /// Returns the reference count of the object. It is unwise to do anything other than test
- /// whether the return value of this method is greater than zero.
- #[inline]
- fn retain_count(&self) -> CFIndex {
- unsafe {
- CFGetRetainCount(self.as_CFTypeRef())
- }
- }
-
- /// Returns the type ID of this object.
- #[inline]
- fn type_of(&self) -> CFTypeID {
- unsafe {
- CFGetTypeID(self.as_CFTypeRef())
- }
- }
-
- /// Writes a debugging version of this object on standard error.
- fn show(&self) {
- unsafe {
- CFShow(self.as_CFTypeRef())
- }
- }
-
- /// Returns true if this value is an instance of another type.
- #[inline]
- fn instance_of<OtherCFType: TCFType>(&self) -> bool {
- self.type_of() == OtherCFType::type_id()
- }
-}
-
-impl TCFType for CFType {
- type Ref = CFTypeRef;
-
- #[inline]
- fn as_concrete_TypeRef(&self) -> CFTypeRef {
- self.0
- }
-
- #[inline]
- unsafe fn wrap_under_get_rule(reference: CFTypeRef) -> CFType {
- let reference: CFTypeRef = CFRetain(reference);
- TCFType::wrap_under_create_rule(reference)
- }
-
- #[inline]
- fn as_CFTypeRef(&self) -> CFTypeRef {
- self.as_concrete_TypeRef()
- }
-
- #[inline]
- unsafe fn wrap_under_create_rule(obj: CFTypeRef) -> CFType {
- CFType(obj)
- }
-
- #[inline]
- fn type_id() -> CFTypeID {
- // FIXME(pcwalton): Is this right?
- 0
- }
-}
-
-
-#[cfg(test)]
-mod tests {
- use super::*;
- use std::mem;
- use boolean::CFBoolean;
-
- #[test]
- fn cftype_instance_of() {
- let string = CFString::from_static_string("foo");
- let cftype = string.as_CFType();
-
- assert!(cftype.instance_of::<CFString>());
- assert!(!cftype.instance_of::<CFBoolean>());
- }
-
- #[test]
- fn as_cftype_retain_count() {
- let string = CFString::from_static_string("bar");
- assert_eq!(string.retain_count(), 1);
- let cftype = string.as_CFType();
- assert_eq!(cftype.retain_count(), 2);
- mem::drop(string);
- assert_eq!(cftype.retain_count(), 1);
- }
-
- #[test]
- fn into_cftype_retain_count() {
- let string = CFString::from_static_string("bar");
- assert_eq!(string.retain_count(), 1);
- let cftype = string.into_CFType();
- assert_eq!(cftype.retain_count(), 1);
- }
-
- #[test]
- fn as_cftype_and_downcast() {
- let string = CFString::from_static_string("bar");
- let cftype = string.as_CFType();
- let string2 = cftype.downcast::<CFString>().unwrap();
- assert_eq!(string2.to_string(), "bar");
-
- assert_eq!(string.retain_count(), 3);
- assert_eq!(cftype.retain_count(), 3);
- assert_eq!(string2.retain_count(), 3);
- }
-
- #[test]
- fn into_cftype_and_downcast_into() {
- let string = CFString::from_static_string("bar");
- let cftype = string.into_CFType();
- let string2 = cftype.downcast_into::<CFString>().unwrap();
- assert_eq!(string2.to_string(), "bar");
- assert_eq!(string2.retain_count(), 1);
- }
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/boolean.rs
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! A Boolean type.
-
-pub use core_foundation_sys::number::{CFBooleanRef, CFBooleanGetTypeID, kCFBooleanTrue, kCFBooleanFalse};
-
-use base::TCFType;
-
-
-declare_TCFType!{
- /// A Boolean type.
- ///
- /// FIXME(pcwalton): Should be a newtype struct, but that fails due to a Rust compiler bug.
- CFBoolean, CFBooleanRef
-}
-impl_TCFType!(CFBoolean, CFBooleanRef, CFBooleanGetTypeID);
-impl_CFTypeDescription!(CFBoolean);
-
-impl CFBoolean {
- pub fn true_value() -> CFBoolean {
- unsafe {
- TCFType::wrap_under_get_rule(kCFBooleanTrue)
- }
- }
-
- pub fn false_value() -> CFBoolean {
- unsafe {
- TCFType::wrap_under_get_rule(kCFBooleanFalse)
- }
- }
-}
-
-impl From<bool> for CFBoolean {
- fn from(value: bool) -> CFBoolean {
- if value {
- CFBoolean::true_value()
- } else {
- CFBoolean::false_value()
- }
- }
-}
-
-impl From<CFBoolean> for bool {
- fn from(value: CFBoolean) -> bool {
- value.0 == unsafe { kCFBooleanTrue }
- }
-}
-
-#[cfg(test)]
-mod tests {
- use super::*;
-
- #[test]
- fn to_and_from_bool() {
- let b_false = CFBoolean::from(false);
- let b_true = CFBoolean::from(true);
- assert_ne!(b_false, b_true);
- assert_eq!(b_false, CFBoolean::false_value());
- assert_eq!(b_true, CFBoolean::true_value());
- assert!(!bool::from(b_false));
- assert!(bool::from(b_true));
- }
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/bundle.rs
+++ /dev/null
@@ -1,122 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! Core Foundation Bundle Type
-
-pub use core_foundation_sys::bundle::*;
-use core_foundation_sys::base::kCFAllocatorDefault;
-
-use base::TCFType;
-use url::CFURL;
-use dictionary::CFDictionary;
-
-
-declare_TCFType!{
- /// A Bundle type.
- CFBundle, CFBundleRef
-}
-impl_TCFType!(CFBundle, CFBundleRef, CFBundleGetTypeID);
-
-impl CFBundle {
- pub fn new(bundleURL: CFURL) -> Option<CFBundle> {
- unsafe {
- let bundle_ref = CFBundleCreate(kCFAllocatorDefault, bundleURL.as_concrete_TypeRef());
- if bundle_ref.is_null() {
- None
- } else {
- Some(TCFType::wrap_under_create_rule(bundle_ref))
- }
- }
- }
-
- pub fn main_bundle() -> CFBundle {
- unsafe {
- let bundle_ref = CFBundleGetMainBundle();
- TCFType::wrap_under_get_rule(bundle_ref)
- }
- }
-
- pub fn info_dictionary(&self) -> CFDictionary {
- unsafe {
- let info_dictionary = CFBundleGetInfoDictionary(self.0);
- TCFType::wrap_under_get_rule(info_dictionary)
- }
- }
-
- pub fn executable_url(&self) -> Option<CFURL> {
- unsafe {
- let exe_url = CFBundleCopyExecutableURL(self.0);
- if exe_url.is_null() {
- None
- } else {
- Some(TCFType::wrap_under_create_rule(exe_url))
- }
- }
- }
-
- pub fn private_frameworks_url(&self) -> Option<CFURL> {
- unsafe {
- let fw_url = CFBundleCopyPrivateFrameworksURL(self.0);
- if fw_url.is_null() {
- None
- } else {
- Some(TCFType::wrap_under_create_rule(fw_url))
- }
- }
- }
-}
-
-
-#[test]
-fn safari_executable_url() {
- use string::CFString;
- use url::{CFURL, kCFURLPOSIXPathStyle};
-
- let cfstr_path = CFString::from_static_string("/Applications/Safari.app");
- let cfurl_path = CFURL::from_file_system_path(cfstr_path, kCFURLPOSIXPathStyle, true);
- let cfurl_executable = CFBundle::new(cfurl_path)
- .expect("Safari not present")
- .executable_url();
- assert!(cfurl_executable.is_some());
- assert_eq!(cfurl_executable
- .unwrap()
- .absolute()
- .get_file_system_path(kCFURLPOSIXPathStyle)
- .to_string(),
- "/Applications/Safari.app/Contents/MacOS/Safari");
-}
-
-#[test]
-fn safari_private_frameworks_url() {
- use string::CFString;
- use url::{CFURL, kCFURLPOSIXPathStyle};
-
- let cfstr_path = CFString::from_static_string("/Applications/Safari.app");
- let cfurl_path = CFURL::from_file_system_path(cfstr_path, kCFURLPOSIXPathStyle, true);
- let cfurl_executable = CFBundle::new(cfurl_path)
- .expect("Safari not present")
- .private_frameworks_url();
- assert!(cfurl_executable.is_some());
- assert_eq!(cfurl_executable
- .unwrap()
- .absolute()
- .get_file_system_path(kCFURLPOSIXPathStyle)
- .to_string(),
- "/Applications/Safari.app/Contents/Frameworks");
-}
-
-#[test]
-fn non_existant_bundle() {
- use string::CFString;
- use url::{CFURL, kCFURLPOSIXPathStyle};
-
- let cfstr_path = CFString::from_static_string("/usr/local/foo");
- let cfurl_path = CFURL::from_file_system_path(cfstr_path, kCFURLPOSIXPathStyle, true);
- assert!(CFBundle::new(cfurl_path).is_none());
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/data.rs
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! Core Foundation byte buffers.
-
-pub use core_foundation_sys::data::*;
-use core_foundation_sys::base::CFIndex;
-use core_foundation_sys::base::{kCFAllocatorDefault};
-use std::ops::Deref;
-use std::slice;
-
-use base::{CFIndexConvertible, TCFType};
-
-
-declare_TCFType!{
- /// A byte buffer.
- CFData, CFDataRef
-}
-impl_TCFType!(CFData, CFDataRef, CFDataGetTypeID);
-impl_CFTypeDescription!(CFData);
-
-impl CFData {
- pub fn from_buffer(buffer: &[u8]) -> CFData {
- unsafe {
- let data_ref = CFDataCreate(kCFAllocatorDefault,
- buffer.as_ptr(),
- buffer.len().to_CFIndex());
- TCFType::wrap_under_create_rule(data_ref)
- }
- }
-
- /// Returns a pointer to the underlying bytes in this data. Note that this byte buffer is
- /// read-only.
- #[inline]
- pub fn bytes<'a>(&'a self) -> &'a [u8] {
- unsafe {
- slice::from_raw_parts(CFDataGetBytePtr(self.0), self.len() as usize)
- }
- }
-
- /// Returns the length of this byte buffer.
- #[inline]
- pub fn len(&self) -> CFIndex {
- unsafe {
- CFDataGetLength(self.0)
- }
- }
-}
-
-impl Deref for CFData {
- type Target = [u8];
-
- #[inline]
- fn deref(&self) -> &[u8] {
- self.bytes()
- }
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/date.rs
+++ /dev/null
@@ -1,130 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! Core Foundation date objects.
-
-pub use core_foundation_sys::date::*;
-use core_foundation_sys::base::kCFAllocatorDefault;
-
-use base::TCFType;
-
-#[cfg(feature = "with-chrono")]
-use chrono::NaiveDateTime;
-
-
-declare_TCFType!{
- /// A date.
- CFDate, CFDateRef
-}
-impl_TCFType!(CFDate, CFDateRef, CFDateGetTypeID);
-impl_CFTypeDescription!(CFDate);
-impl_CFComparison!(CFDate, CFDateCompare);
-
-impl CFDate {
- #[inline]
- pub fn new(time: CFAbsoluteTime) -> CFDate {
- unsafe {
- let date_ref = CFDateCreate(kCFAllocatorDefault, time);
- TCFType::wrap_under_create_rule(date_ref)
- }
- }
-
- #[inline]
- pub fn now() -> CFDate {
- CFDate::new(unsafe { CFAbsoluteTimeGetCurrent() })
- }
-
- #[inline]
- pub fn abs_time(&self) -> CFAbsoluteTime {
- unsafe {
- CFDateGetAbsoluteTime(self.0)
- }
- }
-
- #[cfg(feature = "with-chrono")]
- pub fn naive_utc(&self) -> NaiveDateTime {
- let ts = unsafe {
- self.abs_time() + kCFAbsoluteTimeIntervalSince1970
- };
- let (secs, nanos) = if ts.is_sign_positive() {
- (ts.trunc() as i64, ts.fract())
- } else {
- // nanoseconds can't be negative in NaiveDateTime
- (ts.trunc() as i64 - 1, 1.0 - ts.fract().abs())
- };
- NaiveDateTime::from_timestamp(secs, (nanos * 1e9).floor() as u32)
- }
-
- #[cfg(feature = "with-chrono")]
- pub fn from_naive_utc(time: NaiveDateTime) -> CFDate {
- let secs = time.timestamp();
- let nanos = time.timestamp_subsec_nanos();
- let ts = unsafe {
- secs as f64 + (nanos as f64 / 1e9) - kCFAbsoluteTimeIntervalSince1970
- };
- CFDate::new(ts)
- }
-}
-
-#[cfg(test)]
-mod test {
- use super::CFDate;
- use std::cmp::Ordering;
-
- #[cfg(feature = "with-chrono")]
- use chrono::NaiveDateTime;
-
- #[cfg(feature = "with-chrono")]
- fn approx_eq(a: f64, b: f64) -> bool {
- use std::f64;
-
- let same_sign = a.is_sign_positive() == b.is_sign_positive();
- let equal = ((a - b).abs() / f64::min(a.abs() + b.abs(), f64::MAX)) < f64::EPSILON;
- (same_sign && equal)
- }
-
- #[test]
- fn date_comparison() {
- let now = CFDate::now();
- let past = CFDate::new(now.abs_time() - 1.0);
- assert_eq!(now.cmp(&past), Ordering::Greater);
- assert_eq!(now.cmp(&now), Ordering::Equal);
- assert_eq!(past.cmp(&now), Ordering::Less);
- }
-
- #[test]
- fn date_equality() {
- let now = CFDate::now();
- let same_time = CFDate::new(now.abs_time());
- assert_eq!(now, same_time);
- }
-
- #[test]
- #[cfg(feature = "with-chrono")]
- fn date_chrono_conversion_positive() {
- let date = CFDate::now();
- let datetime = date.naive_utc();
- let converted = CFDate::from_naive_utc(datetime);
- assert!(approx_eq(date.abs_time(), converted.abs_time()));
- }
-
- #[test]
- #[cfg(feature = "with-chrono")]
- fn date_chrono_conversion_negative() {
- use super::kCFAbsoluteTimeIntervalSince1970;
-
- let ts = unsafe {
- kCFAbsoluteTimeIntervalSince1970 - 420.0
- };
- let date = CFDate::new(ts);
- let datetime: NaiveDateTime = date.naive_utc();
- let converted = CFDate::from_naive_utc(datetime);
- assert!(approx_eq(date.abs_time(), converted.abs_time()));
- }
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/dictionary.rs
+++ /dev/null
@@ -1,391 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! Dictionaries of key-value pairs.
-
-pub use core_foundation_sys::dictionary::*;
-
-use core_foundation_sys::base::{CFTypeRef, kCFAllocatorDefault};
-use libc::c_void;
-use std::mem;
-use std::ptr;
-
-use base::{CFType, CFIndexConvertible, TCFType, TCFTypeRef};
-
-
-declare_TCFType!{
- /// An immutable dictionary of key-value pairs.
- CFDictionary, CFDictionaryRef
-}
-impl_TCFType!(CFDictionary, CFDictionaryRef, CFDictionaryGetTypeID);
-impl_CFTypeDescription!(CFDictionary);
-
-impl CFDictionary {
- pub fn from_CFType_pairs<K: TCFType, V: TCFType>(pairs: &[(K, V)]) -> CFDictionary {
- let (keys, values): (Vec<CFTypeRef>, Vec<CFTypeRef>) = pairs
- .iter()
- .map(|&(ref key, ref value)| (key.as_CFTypeRef(), value.as_CFTypeRef()))
- .unzip();
-
- unsafe {
- let dictionary_ref = CFDictionaryCreate(kCFAllocatorDefault,
- mem::transmute(keys.as_ptr()),
- mem::transmute(values.as_ptr()),
- keys.len().to_CFIndex(),
- &kCFTypeDictionaryKeyCallBacks,
- &kCFTypeDictionaryValueCallBacks);
- TCFType::wrap_under_create_rule(dictionary_ref)
- }
- }
-
- #[inline]
- pub fn len(&self) -> usize {
- unsafe {
- CFDictionaryGetCount(self.0) as usize
- }
- }
-
- #[inline]
- pub fn is_empty(&self) -> bool {
- self.len() == 0
- }
-
- #[inline]
- pub fn contains_key(&self, key: *const c_void) -> bool {
- unsafe { CFDictionaryContainsKey(self.0, key) != 0 }
- }
-
- /// Similar to `contains_key` but acts on a higher level, automatically converting from any
- /// `TCFType` to the raw pointer of its concrete TypeRef.
- #[inline]
- pub fn contains_key2<K: TCFType>(&self, key: &K) -> bool {
- self.contains_key(key.as_concrete_TypeRef().as_void_ptr())
- }
-
- #[inline]
- pub fn find(&self, key: *const c_void) -> Option<*const c_void> {
- unsafe {
- let mut value: *const c_void = ptr::null();
- if CFDictionaryGetValueIfPresent(self.0, key, &mut value) != 0 {
- Some(value)
- } else {
- None
- }
- }
- }
-
- /// Similar to `find` but acts on a higher level, automatically converting from any `TCFType`
- /// to the raw pointer of its concrete TypeRef.
- #[inline]
- pub fn find2<K: TCFType>(&self, key: &K) -> Option<*const c_void> {
- self.find(key.as_concrete_TypeRef().as_void_ptr())
- }
-
- /// # Panics
- ///
- /// Panics if the key is not present in the dictionary. Use `find` to get an `Option` instead
- /// of panicking.
- #[inline]
- pub fn get(&self, key: *const c_void) -> *const c_void {
- self.find(key).expect(&format!("No entry found for key {:p}", key))
- }
-
- /// A convenience function to retrieve `CFType` instances.
- #[inline]
- pub unsafe fn get_CFType(&self, key: *const c_void) -> CFType {
- let value: CFTypeRef = mem::transmute(self.get(key));
- TCFType::wrap_under_get_rule(value)
- }
-
- pub fn get_keys_and_values(&self) -> (Vec<*const c_void>, Vec<*const c_void>) {
- let length = self.len();
- let mut keys = Vec::with_capacity(length);
- let mut values = Vec::with_capacity(length);
-
- unsafe {
- CFDictionaryGetKeysAndValues(self.0, keys.as_mut_ptr(), values.as_mut_ptr());
- keys.set_len(length);
- values.set_len(length);
- }
-
- (keys, values)
- }
-}
-
-declare_TCFType!{
- /// An mutable dictionary of key-value pairs.
- CFMutableDictionary, CFMutableDictionaryRef
-}
-
-impl_TCFType!(CFMutableDictionary, CFMutableDictionaryRef, CFDictionaryGetTypeID);
-impl_CFTypeDescription!(CFMutableDictionary);
-
-impl CFMutableDictionary {
- pub fn new() -> Self {
- Self::with_capacity(0)
- }
-
- pub fn with_capacity(capacity: isize) -> Self {
- unsafe {
- let dictionary_ref = CFDictionaryCreateMutable(kCFAllocatorDefault,
- capacity as _,
- &kCFTypeDictionaryKeyCallBacks,
- &kCFTypeDictionaryValueCallBacks);
- TCFType::wrap_under_create_rule(dictionary_ref)
- }
- }
-
- pub fn copy_with_capacity(&self, capacity: isize) -> Self {
- unsafe {
- let dictionary_ref = CFDictionaryCreateMutableCopy(kCFAllocatorDefault, capacity as _, self.0);
- TCFType::wrap_under_get_rule(dictionary_ref)
- }
- }
-
- pub fn from_CFType_pairs<K: TCFType, V: TCFType>(pairs: &[(K, V)]) -> CFMutableDictionary {
- let result = Self::with_capacity(pairs.len() as _);
- unsafe {
- for &(ref key, ref value) in pairs {
- result.add(key.as_CFTypeRef(), value.as_CFTypeRef());
- }
- }
- result
- }
-
- // Immutable interface
-
- #[inline]
- pub fn len(&self) -> usize {
- unsafe {
- CFDictionaryGetCount(self.0) as usize
- }
- }
-
- #[inline]
- pub fn is_empty(&self) -> bool {
- self.len() == 0
- }
-
- #[inline]
- pub fn contains_key(&self, key: *const c_void) -> bool {
- unsafe {
- CFDictionaryContainsKey(self.0, key) != 0
- }
- }
-
- /// Similar to `contains_key` but acts on a higher level, automatically converting from any
- /// `TCFType` to the raw pointer of its concrete TypeRef.
- #[inline]
- pub fn contains_key2<K: TCFType>(&self, key: &K) -> bool {
- self.contains_key(key.as_concrete_TypeRef().as_void_ptr())
- }
-
- #[inline]
- pub fn find(&self, key: *const c_void) -> Option<*const c_void> {
- unsafe {
- let mut value: *const c_void = ptr::null();
- if CFDictionaryGetValueIfPresent(self.0, key, &mut value) != 0 {
- Some(value)
- } else {
- None
- }
- }
- }
-
- /// Similar to `find` but acts on a higher level, automatically converting from any `TCFType`
- /// to the raw pointer of its concrete TypeRef.
- #[inline]
- pub fn find2<K: TCFType>(&self, key: &K) -> Option<*const c_void> {
- self.find(key.as_concrete_TypeRef().as_void_ptr())
- }
-
- /// # Panics
- ///
- /// Panics if the key is not present in the dictionary. Use `find` to get an `Option` instead
- /// of panicking.
- #[inline]
- pub fn get(&self, key: *const c_void) -> *const c_void {
- self.find(key).expect(&format!("No entry found for key {:p}", key))
- }
-
- /// A convenience function to retrieve `CFType` instances.
- #[inline]
- pub unsafe fn get_CFType(&self, key: *const c_void) -> CFType {
- let value: CFTypeRef = mem::transmute(self.get(key));
- TCFType::wrap_under_get_rule(value)
- }
-
- pub fn get_keys_and_values(&self) -> (Vec<*const c_void>, Vec<*const c_void>) {
- let length = self.len();
- let mut keys = Vec::with_capacity(length);
- let mut values = Vec::with_capacity(length);
-
- unsafe {
- CFDictionaryGetKeysAndValues(self.0, keys.as_mut_ptr(), values.as_mut_ptr());
- keys.set_len(length);
- values.set_len(length);
- }
-
- (keys, values)
- }
-
- // Mutable interface
-
- /// Adds the key-value pair to the dictionary if no such key already exist.
- #[inline]
- pub unsafe fn add(&self, key: *const c_void, value: *const c_void) {
- CFDictionaryAddValue(self.0, key, value)
- }
-
- /// Similar to `add` but acts on a higher level, automatically converting from any `TCFType`
- /// to the raw pointer of its concrete TypeRef.
- #[inline]
- pub fn add2<K: TCFType, V: TCFType>(&self, key: &K, value: &V) {
- unsafe {
- self.add(
- key.as_concrete_TypeRef().as_void_ptr(),
- value.as_concrete_TypeRef().as_void_ptr(),
- )
- }
- }
-
- /// Sets the value of the key in the dictionary.
- #[inline]
- pub unsafe fn set(&self, key: *const c_void, value: *const c_void) {
- CFDictionarySetValue(self.0, key, value)
- }
-
- /// Similar to `set` but acts on a higher level, automatically converting from any `TCFType`
- /// to the raw pointer of its concrete TypeRef.
- #[inline]
- pub fn set2<K: TCFType, V: TCFType>(&self, key: &K, value: &V) {
- unsafe {
- self.set(
- key.as_concrete_TypeRef().as_void_ptr(),
- value.as_concrete_TypeRef().as_void_ptr(),
- )
- }
- }
-
- /// Replaces the value of the key in the dictionary.
- #[inline]
- pub unsafe fn replace(&self, key: *const c_void, value: *const c_void) {
- CFDictionaryReplaceValue(self.0, key, value)
- }
-
- /// Similar to `replace` but acts on a higher level, automatically converting from any `TCFType`
- /// to the raw pointer of its concrete TypeRef.
- #[inline]
- pub fn replace2<K: TCFType, V: TCFType>(&self, key: &K, value: &V) {
- unsafe {
- self.replace(
- key.as_concrete_TypeRef().as_void_ptr(),
- value.as_concrete_TypeRef().as_void_ptr(),
- )
- }
- }
-
- /// Removes the value of the key from the dictionary.
- #[inline]
- pub unsafe fn remove(&self, key: *const c_void) {
- CFDictionaryRemoveValue(self.0, key);
- }
-
- /// Similar to `remove` but acts on a higher level, automatically converting from any `TCFType`
- /// to the raw pointer of its concrete TypeRef.
- #[inline]
- pub fn remove2<K: TCFType>(&self, key: &K) {
- unsafe { self.remove(key.as_concrete_TypeRef().as_void_ptr()) }
- }
-
- #[inline]
- pub fn remove_all(&self) {
- unsafe { CFDictionaryRemoveAllValues(self.0) }
- }
-}
-
-
-#[cfg(test)]
-pub mod test {
- use super::*;
- use base::TCFType;
- use boolean::{CFBoolean, CFBooleanRef};
- use number::CFNumber;
- use string::CFString;
-
-
- #[test]
- fn dictionary() {
- let bar = CFString::from_static_string("Bar");
- let baz = CFString::from_static_string("Baz");
- let boo = CFString::from_static_string("Boo");
- let foo = CFString::from_static_string("Foo");
- let tru = CFBoolean::true_value();
- let n42 = CFNumber::from(42);
-
- let d = CFDictionary::from_CFType_pairs(&[
- (bar.as_CFType(), boo.as_CFType()),
- (baz.as_CFType(), tru.as_CFType()),
- (foo.as_CFType(), n42.as_CFType()),
- ]);
-
- let (v1, v2) = d.get_keys_and_values();
- assert!(v1 == &[bar.as_CFTypeRef(), baz.as_CFTypeRef(), foo.as_CFTypeRef()]);
- assert!(v2 == &[boo.as_CFTypeRef(), tru.as_CFTypeRef(), n42.as_CFTypeRef()]);
- }
-
- #[test]
- fn mutable_dictionary() {
- let bar = CFString::from_static_string("Bar");
- let baz = CFString::from_static_string("Baz");
- let boo = CFString::from_static_string("Boo");
- let foo = CFString::from_static_string("Foo");
- let tru = CFBoolean::true_value();
- let n42 = CFNumber::from(42);
-
- let d = CFMutableDictionary::new();
- d.add2(&bar, &boo);
- d.add2(&baz, &tru);
- d.add2(&foo, &n42);
- assert_eq!(d.len(), 3);
-
- let (v1, v2) = d.get_keys_and_values();
- assert!(v1 == &[bar.as_CFTypeRef(), baz.as_CFTypeRef(), foo.as_CFTypeRef()]);
- assert!(v2 == &[boo.as_CFTypeRef(), tru.as_CFTypeRef(), n42.as_CFTypeRef()]);
-
- d.remove2(&baz);
- assert_eq!(d.len(), 2);
-
- let (v1, v2) = d.get_keys_and_values();
- assert!(v1 == &[bar.as_CFTypeRef(), foo.as_CFTypeRef()]);
- assert!(v2 == &[boo.as_CFTypeRef(), n42.as_CFTypeRef()]);
-
- d.remove_all();
- assert_eq!(d.len(), 0)
- }
-
- #[test]
- fn dict_find2_and_contains_key2() {
- let dict = CFDictionary::from_CFType_pairs(&[
- (
- CFString::from_static_string("hello"),
- CFBoolean::true_value(),
- ),
- ]);
- let key = CFString::from_static_string("hello");
- let invalid_key = CFString::from_static_string("foobar");
-
- assert!(dict.contains_key2(&key));
- assert!(!dict.contains_key2(&invalid_key));
-
- let value = unsafe { CFBoolean::wrap_under_get_rule(dict.find2(&key).unwrap() as CFBooleanRef) };
- assert_eq!(value, CFBoolean::true_value());
- assert_eq!(dict.find2(&invalid_key), None);
- }
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/error.rs
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright 2016 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! Core Foundation errors.
-
-pub use core_foundation_sys::error::*;
-
-use std::error::Error;
-use std::fmt;
-
-use base::{CFIndex, TCFType};
-use string::CFString;
-
-
-declare_TCFType!{
- /// An error value.
- CFError, CFErrorRef
-}
-impl_TCFType!(CFError, CFErrorRef, CFErrorGetTypeID);
-
-impl fmt::Debug for CFError {
- fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
- fmt.debug_struct("CFError")
- .field("domain", &self.domain())
- .field("code", &self.code())
- .field("description", &self.description())
- .finish()
- }
-}
-
-impl fmt::Display for CFError {
- fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
- write!(fmt, "{}", self.description())
- }
-}
-
-impl Error for CFError {
- fn description(&self) -> &str {
- "a Core Foundation error"
- }
-}
-
-impl CFError {
- /// Returns a string identifying the domain with which this error is
- /// associated.
- pub fn domain(&self) -> CFString {
- unsafe {
- let s = CFErrorGetDomain(self.0);
- CFString::wrap_under_get_rule(s)
- }
- }
-
- /// Returns the code identifying this type of error.
- pub fn code(&self) -> CFIndex {
- unsafe { CFErrorGetCode(self.0) }
- }
-
- /// Returns a human-presentable description of the error.
- pub fn description(&self) -> CFString {
- unsafe {
- let s = CFErrorCopyDescription(self.0);
- CFString::wrap_under_create_rule(s)
- }
- }
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/filedescriptor.rs
+++ /dev/null
@@ -1,200 +0,0 @@
-pub use core_foundation_sys::filedescriptor::*;
-
-use core_foundation_sys::base::{Boolean, CFIndex};
-use core_foundation_sys::base::{kCFAllocatorDefault, CFOptionFlags};
-
-use base::TCFType;
-use runloop::CFRunLoopSource;
-
-use std::mem;
-use std::os::unix::io::{AsRawFd, RawFd};
-use std::ptr;
-
-declare_TCFType!{
- CFFileDescriptor, CFFileDescriptorRef
-}
-impl_TCFType!(CFFileDescriptor, CFFileDescriptorRef, CFFileDescriptorGetTypeID);
-
-impl CFFileDescriptor {
- pub fn new(fd: RawFd,
- closeOnInvalidate: bool,
- callout: CFFileDescriptorCallBack,
- context: Option<&CFFileDescriptorContext>) -> Option<CFFileDescriptor> {
- let context = context.map_or(ptr::null(), |c| c as *const _);
- unsafe {
- let fd_ref = CFFileDescriptorCreate(kCFAllocatorDefault,
- fd,
- closeOnInvalidate as Boolean,
- callout,
- context);
- if fd_ref.is_null() {
- None
- } else {
- Some(TCFType::wrap_under_create_rule(fd_ref))
- }
- }
- }
-
- pub fn context(&self) -> CFFileDescriptorContext {
- unsafe {
- let mut context: CFFileDescriptorContext = mem::uninitialized();
- CFFileDescriptorGetContext(self.0, &mut context);
- context
- }
- }
-
- pub fn enable_callbacks(&self, callback_types: CFOptionFlags) {
- unsafe {
- CFFileDescriptorEnableCallBacks(self.0, callback_types)
- }
- }
-
- pub fn disable_callbacks(&self, callback_types: CFOptionFlags) {
- unsafe {
- CFFileDescriptorDisableCallBacks(self.0, callback_types)
- }
- }
-
- pub fn valid(&self) -> bool {
- unsafe {
- CFFileDescriptorIsValid(self.0) != 0
- }
- }
-
- pub fn invalidate(&self) {
- unsafe {
- CFFileDescriptorInvalidate(self.0)
- }
- }
-
- pub fn to_run_loop_source(&self, order: CFIndex) -> Option<CFRunLoopSource> {
- unsafe {
- let source_ref = CFFileDescriptorCreateRunLoopSource(
- kCFAllocatorDefault,
- self.0,
- order
- );
- if source_ref.is_null() {
- None
- } else {
- Some(TCFType::wrap_under_create_rule(source_ref))
- }
- }
- }
-}
-
-impl AsRawFd for CFFileDescriptor {
- fn as_raw_fd(&self) -> RawFd {
- unsafe {
- CFFileDescriptorGetNativeDescriptor(self.0)
- }
- }
-}
-
-
-#[cfg(test)]
-mod test {
- extern crate libc;
-
- use super::*;
- use std::ffi::CString;
- use libc::{c_void, O_RDWR};
- use core_foundation_sys::base::{CFOptionFlags};
- use core_foundation_sys::runloop::{kCFRunLoopDefaultMode};
- use runloop::{CFRunLoop};
-
- #[test]
- fn test_consumed() {
- let path = CString::new("/dev/null").unwrap();
- let raw_fd = unsafe { libc::open(path.as_ptr(), O_RDWR, 0) };
- let cf_fd = CFFileDescriptor::new(raw_fd, true, never_callback, None);
- assert!(cf_fd.is_some());
- let cf_fd = cf_fd.unwrap();
-
- assert!(cf_fd.valid());
- cf_fd.invalidate();
- assert!(!cf_fd.valid());
-
- // close() should fail
- assert_eq!(unsafe { libc::close(raw_fd) }, -1);
- }
-
- #[test]
- fn test_unconsumed() {
- let path = CString::new("/dev/null").unwrap();
- let raw_fd = unsafe { libc::open(path.as_ptr(), O_RDWR, 0) };
- let cf_fd = CFFileDescriptor::new(raw_fd, false, never_callback, None);
- assert!(cf_fd.is_some());
- let cf_fd = cf_fd.unwrap();
-
- assert!(cf_fd.valid());
- cf_fd.invalidate();
- assert!(!cf_fd.valid());
-
- // close() should succeed
- assert_eq!(unsafe { libc::close(raw_fd) }, 0);
- }
-
- extern "C" fn never_callback(_f: CFFileDescriptorRef,
- _callback_types: CFOptionFlags,
- _info_ptr: *mut c_void) {
- unreachable!();
- }
-
- struct TestInfo {
- value: CFOptionFlags
- }
-
- #[test]
- fn test_callback() {
- let mut info = TestInfo { value: 0 };
- let context = CFFileDescriptorContext {
- version: 0,
- info: &mut info as *mut _ as *mut c_void,
- retain: None,
- release: None,
- copyDescription: None
- };
-
- let path = CString::new("/dev/null").unwrap();
- let raw_fd = unsafe { libc::open(path.as_ptr(), O_RDWR, 0) };
- let cf_fd = CFFileDescriptor::new(raw_fd, true, callback, Some(&context));
- assert!(cf_fd.is_some());
- let cf_fd = cf_fd.unwrap();
-
- assert!(cf_fd.valid());
-
- let run_loop = CFRunLoop::get_current();
- let source = CFRunLoopSource::from_file_descriptor(&cf_fd, 0);
- assert!(source.is_some());
- unsafe {
- run_loop.add_source(&source.unwrap(), kCFRunLoopDefaultMode);
- }
-
- info.value = 0;
- cf_fd.enable_callbacks(kCFFileDescriptorReadCallBack);
- CFRunLoop::run_current();
- assert_eq!(info.value, kCFFileDescriptorReadCallBack);
-
- info.value = 0;
- cf_fd.enable_callbacks(kCFFileDescriptorWriteCallBack);
- CFRunLoop::run_current();
- assert_eq!(info.value, kCFFileDescriptorWriteCallBack);
-
- info.value = 0;
- cf_fd.disable_callbacks(kCFFileDescriptorReadCallBack | kCFFileDescriptorWriteCallBack);
-
- cf_fd.invalidate();
- assert!(!cf_fd.valid());
- }
-
- extern "C" fn callback(_f: CFFileDescriptorRef, callback_types: CFOptionFlags, info_ptr: *mut c_void) {
- assert!(!info_ptr.is_null());
-
- let info: *mut TestInfo = info_ptr as *mut TestInfo;
-
- unsafe { (*info).value = callback_types };
-
- CFRunLoop::get_current().stop();
- }
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/lib.rs
+++ /dev/null
@@ -1,212 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-#![allow(non_snake_case)]
-
-extern crate core_foundation_sys;
-extern crate libc;
-
-#[cfg(feature = "with-chrono")]
-extern crate chrono;
-
-#[macro_export]
-macro_rules! declare_TCFType {
- (
- $(#[$doc:meta])*
- $ty:ident, $raw:ident
- ) => {
- $(#[$doc])*
- pub struct $ty($raw);
-
- impl Drop for $ty {
- fn drop(&mut self) {
- unsafe { $crate::base::CFRelease(self.as_CFTypeRef()) }
- }
- }
- }
-}
-
-#[macro_export]
-macro_rules! impl_TCFType {
- ($ty:ident, $ty_ref:ident, $ty_id:ident) => {
- impl $crate::base::TCFType for $ty {
- type Ref = $ty_ref;
-
- #[inline]
- fn as_concrete_TypeRef(&self) -> $ty_ref {
- self.0
- }
-
- #[inline]
- unsafe fn wrap_under_get_rule(reference: $ty_ref) -> $ty {
- use std::mem;
- let reference = mem::transmute($crate::base::CFRetain(mem::transmute(reference)));
- $crate::base::TCFType::wrap_under_create_rule(reference)
- }
-
- #[inline]
- fn as_CFTypeRef(&self) -> $crate::base::CFTypeRef {
- unsafe {
- ::std::mem::transmute(self.as_concrete_TypeRef())
- }
- }
-
- #[inline]
- unsafe fn wrap_under_create_rule(reference: $ty_ref) -> $ty {
- $ty(reference)
- }
-
- #[inline]
- fn type_id() -> $crate::base::CFTypeID {
- unsafe {
- $ty_id()
- }
- }
- }
-
- impl Clone for $ty {
- #[inline]
- fn clone(&self) -> $ty {
- unsafe {
- $ty::wrap_under_get_rule(self.0)
- }
- }
- }
-
- impl PartialEq for $ty {
- #[inline]
- fn eq(&self, other: &$ty) -> bool {
- self.as_CFType().eq(&other.as_CFType())
- }
- }
-
- impl Eq for $ty { }
- }
-}
-
-// This is basically identical to the implementation above. I can't
-// think of a clean way to have them share code
-#[macro_export]
-macro_rules! impl_TCFTypeGeneric {
- ($ty:ident, $ty_ref:ident, $ty_id:ident) => {
- impl<T> $crate::base::TCFType for $ty<T> {
- type Ref = $ty_ref;
-
- #[inline]
- fn as_concrete_TypeRef(&self) -> $ty_ref {
- self.0
- }
-
- #[inline]
- unsafe fn wrap_under_get_rule(reference: $ty_ref) -> $ty<T> {
- use std::mem;
- let reference = mem::transmute($crate::base::CFRetain(mem::transmute(reference)));
- $crate::base::TCFType::wrap_under_create_rule(reference)
- }
-
- #[inline]
- fn as_CFTypeRef(&self) -> ::core_foundation_sys::base::CFTypeRef {
- unsafe {
- ::std::mem::transmute(self.as_concrete_TypeRef())
- }
- }
-
- #[inline]
- unsafe fn wrap_under_create_rule(obj: $ty_ref) -> $ty<T> {
- $ty(obj, PhantomData)
- }
-
- #[inline]
- fn type_id() -> ::core_foundation_sys::base::CFTypeID {
- unsafe {
- $ty_id()
- }
- }
- }
-
- impl<T> Clone for $ty<T> {
- #[inline]
- fn clone(&self) -> $ty<T> {
- unsafe {
- $ty::wrap_under_get_rule(self.0)
- }
- }
- }
-
- impl<T> PartialEq for $ty<T> {
- #[inline]
- fn eq(&self, other: &$ty<T>) -> bool {
- self.as_CFType().eq(&other.as_CFType())
- }
- }
-
- impl<T> Eq for $ty<T> { }
- }
-}
-
-#[macro_export]
-macro_rules! impl_CFTypeDescription {
- ($ty:ident) => {
- impl ::std::fmt::Debug for $ty {
- fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
- self.as_CFType().fmt(f)
- }
- }
- }
-}
-
-// The same as impl_CFTypeDescription but with a type parameter
-#[macro_export]
-macro_rules! impl_CFTypeDescriptionGeneric {
- ($ty:ident) => {
- impl<T> ::std::fmt::Debug for $ty<T> {
- fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
- self.as_CFType().fmt(f)
- }
- }
- }
-}
-
-#[macro_export]
-macro_rules! impl_CFComparison {
- ($ty:ident, $compare:ident) => {
- impl PartialOrd for $ty {
- #[inline]
- fn partial_cmp(&self, other: &$ty) -> Option<::std::cmp::Ordering> {
- unsafe {
- Some($compare(self.as_concrete_TypeRef(), other.as_concrete_TypeRef(), ::std::ptr::null_mut()).into())
- }
- }
- }
-
- impl Ord for $ty {
- #[inline]
- fn cmp(&self, other: &$ty) -> ::std::cmp::Ordering {
- self.partial_cmp(other).unwrap()
- }
- }
- }
-}
-
-pub mod array;
-pub mod base;
-pub mod boolean;
-pub mod data;
-pub mod date;
-pub mod dictionary;
-pub mod error;
-pub mod filedescriptor;
-pub mod number;
-pub mod set;
-pub mod string;
-pub mod url;
-pub mod bundle;
-pub mod propertylist;
-pub mod runloop;
-pub mod timezone;
-pub mod uuid;
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/number.rs
+++ /dev/null
@@ -1,110 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! Immutable numbers.
-
-use core_foundation_sys::base::kCFAllocatorDefault;
-pub use core_foundation_sys::number::*;
-use std::mem;
-
-use base::TCFType;
-
-
-declare_TCFType!{
- /// An immutable numeric value.
- CFNumber, CFNumberRef
-}
-impl_TCFType!(CFNumber, CFNumberRef, CFNumberGetTypeID);
-impl_CFTypeDescription!(CFNumber);
-impl_CFComparison!(CFNumber, CFNumberCompare);
-
-impl CFNumber {
- #[inline]
- pub fn to_i64(&self) -> Option<i64> {
- unsafe {
- let mut value: i64 = 0;
- let ok = CFNumberGetValue(self.0, kCFNumberSInt64Type, mem::transmute(&mut value));
- if ok { Some(value) } else { None }
- }
- }
-
- #[inline]
- pub fn to_f32(&self) -> Option<f32> {
- unsafe {
- let mut value: f32 = 0.0;
- let ok = CFNumberGetValue(self.0, kCFNumberFloat32Type, mem::transmute(&mut value));
- if ok { Some(value) } else { None }
- }
- }
-
- #[inline]
- pub fn to_f64(&self) -> Option<f64> {
- unsafe {
- let mut value: f64 = 0.0;
- let ok = CFNumberGetValue(self.0, kCFNumberFloat64Type, mem::transmute(&mut value));
- if ok { Some(value) } else { None }
- }
- }
-}
-
-impl From<i32> for CFNumber {
- #[inline]
- fn from(value: i32) -> Self {
- unsafe {
- let number_ref = CFNumberCreate(
- kCFAllocatorDefault,
- kCFNumberSInt32Type,
- mem::transmute(&value),
- );
- TCFType::wrap_under_create_rule(number_ref)
- }
- }
-}
-
-impl From<i64> for CFNumber {
- #[inline]
- fn from(value: i64) -> Self {
- unsafe {
- let number_ref = CFNumberCreate(
- kCFAllocatorDefault,
- kCFNumberSInt64Type,
- mem::transmute(&value),
- );
- TCFType::wrap_under_create_rule(number_ref)
- }
- }
-}
-
-impl From<f32> for CFNumber {
- #[inline]
- fn from(value: f32) -> Self {
- unsafe {
- let number_ref = CFNumberCreate(
- kCFAllocatorDefault,
- kCFNumberFloat32Type,
- mem::transmute(&value),
- );
- TCFType::wrap_under_create_rule(number_ref)
- }
- }
-}
-
-impl From<f64> for CFNumber {
- #[inline]
- fn from(value: f64) -> Self {
- unsafe {
- let number_ref = CFNumberCreate(
- kCFAllocatorDefault,
- kCFNumberFloat64Type,
- mem::transmute(&value),
- );
- TCFType::wrap_under_create_rule(number_ref)
- }
- }
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/propertylist.rs
+++ /dev/null
@@ -1,326 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! Core Foundation property lists
-
-use std::ptr;
-use std::mem;
-
-use libc::c_void;
-
-use error::CFError;
-use data::CFData;
-use base::{CFType, TCFType, TCFTypeRef};
-
-pub use core_foundation_sys::propertylist::*;
-use core_foundation_sys::error::CFErrorRef;
-use core_foundation_sys::base::{CFGetRetainCount, CFGetTypeID, CFIndex, CFRetain,
- CFShow, CFTypeID, kCFAllocatorDefault};
-
-pub fn create_with_data(data: CFData,
- options: CFPropertyListMutabilityOptions)
- -> Result<(*const c_void, CFPropertyListFormat), CFError> {
- unsafe {
- let mut error: CFErrorRef = ptr::null_mut();
- let mut format: CFPropertyListFormat = 0;
- let property_list = CFPropertyListCreateWithData(kCFAllocatorDefault,
- data.as_concrete_TypeRef(),
- options,
- &mut format,
- &mut error);
- if property_list.is_null() {
- Err(TCFType::wrap_under_create_rule(error))
- } else {
- Ok((property_list, format))
- }
- }
-}
-
-pub fn create_data(property_list: *const c_void, format: CFPropertyListFormat) -> Result<CFData, CFError> {
- unsafe {
- let mut error: CFErrorRef = ptr::null_mut();
- let data_ref = CFPropertyListCreateData(kCFAllocatorDefault,
- property_list,
- format,
- 0,
- &mut error);
- if data_ref.is_null() {
- Err(TCFType::wrap_under_create_rule(error))
- } else {
- Ok(TCFType::wrap_under_create_rule(data_ref))
- }
- }
-}
-
-
-/// Trait for all subclasses of [`CFPropertyList`].
-///
-/// [`CFPropertyList`]: struct.CFPropertyList.html
-pub trait CFPropertyListSubClass: TCFType {
- /// Create an instance of the superclass type [`CFPropertyList`] for this instance.
- ///
- /// [`CFPropertyList`]: struct.CFPropertyList.html
- #[inline]
- fn to_CFPropertyList(&self) -> CFPropertyList {
- unsafe { CFPropertyList::wrap_under_get_rule(self.as_concrete_TypeRef().as_void_ptr()) }
- }
-
- /// Equal to [`to_CFPropertyList`], but consumes self and avoids changing the reference count.
- ///
- /// [`to_CFPropertyList`]: #method.to_CFPropertyList
- #[inline]
- fn into_CFPropertyList(self) -> CFPropertyList
- where
- Self: Sized,
- {
- let reference = self.as_concrete_TypeRef().as_void_ptr();
- mem::forget(self);
- unsafe { CFPropertyList::wrap_under_create_rule(reference) }
- }
-}
-
-impl CFPropertyListSubClass for ::data::CFData {}
-impl CFPropertyListSubClass for ::string::CFString {}
-impl CFPropertyListSubClass for ::array::CFArray {}
-impl CFPropertyListSubClass for ::dictionary::CFDictionary {}
-impl CFPropertyListSubClass for ::date::CFDate {}
-impl CFPropertyListSubClass for ::boolean::CFBoolean {}
-impl CFPropertyListSubClass for ::number::CFNumber {}
-
-
-declare_TCFType!{
- /// A CFPropertyList struct. This is superclass to [`CFData`], [`CFString`], [`CFArray`],
- /// [`CFDictionary`], [`CFDate`], [`CFBoolean`], and [`CFNumber`].
- ///
- /// This superclass type does not have its own `CFTypeID`, instead each instance has the `CFTypeID`
- /// of the subclass it is an instance of. Thus, this type cannot implement the [`TCFType`] trait,
- /// since it cannot implement the static [`TCFType::type_id()`] method.
- ///
- /// [`CFData`]: ../data/struct.CFData.html
- /// [`CFString`]: ../string/struct.CFString.html
- /// [`CFArray`]: ../array/struct.CFArray.html
- /// [`CFDictionary`]: ../dictionary/struct.CFDictionary.html
- /// [`CFDate`]: ../date/struct.CFDate.html
- /// [`CFBoolean`]: ../boolean/struct.CFBoolean.html
- /// [`CFNumber`]: ../number/struct.CFNumber.html
- /// [`TCFType`]: ../base/trait.TCFType.html
- /// [`TCFType::type_id()`]: ../base/trait.TCFType.html#method.type_of
- CFPropertyList, CFPropertyListRef
-}
-
-impl CFPropertyList {
- #[inline]
- pub fn as_concrete_TypeRef(&self) -> CFPropertyListRef {
- self.0
- }
-
- #[inline]
- pub unsafe fn wrap_under_get_rule(reference: CFPropertyListRef) -> CFPropertyList {
- let reference = mem::transmute(CFRetain(mem::transmute(reference)));
- CFPropertyList(reference)
- }
-
- #[inline]
- pub fn as_CFType(&self) -> CFType {
- unsafe { CFType::wrap_under_get_rule(self.as_CFTypeRef()) }
- }
-
- #[inline]
- pub fn into_CFType(self) -> CFType
- where
- Self: Sized,
- {
- let reference = self.as_CFTypeRef();
- mem::forget(self);
- unsafe { TCFType::wrap_under_create_rule(reference) }
- }
-
- #[inline]
- pub fn as_CFTypeRef(&self) -> ::core_foundation_sys::base::CFTypeRef {
- unsafe { mem::transmute(self.as_concrete_TypeRef()) }
- }
-
- #[inline]
- pub unsafe fn wrap_under_create_rule(obj: CFPropertyListRef) -> CFPropertyList {
- CFPropertyList(obj)
- }
-
- /// Returns the reference count of the object. It is unwise to do anything other than test
- /// whether the return value of this method is greater than zero.
- #[inline]
- pub fn retain_count(&self) -> CFIndex {
- unsafe { CFGetRetainCount(self.as_CFTypeRef()) }
- }
-
- /// Returns the type ID of this object. Will be one of CFData, CFString, CFArray, CFDictionary,
- /// CFDate, CFBoolean, or CFNumber.
- #[inline]
- pub fn type_of(&self) -> CFTypeID {
- unsafe { CFGetTypeID(self.as_CFTypeRef()) }
- }
-
- /// Writes a debugging version of this object on standard error.
- pub fn show(&self) {
- unsafe { CFShow(self.as_CFTypeRef()) }
- }
-
- /// Returns true if this value is an instance of another type.
- #[inline]
- pub fn instance_of<OtherCFType: TCFType>(&self) -> bool {
- self.type_of() == OtherCFType::type_id()
- }
-}
-
-impl Clone for CFPropertyList {
- #[inline]
- fn clone(&self) -> CFPropertyList {
- unsafe { CFPropertyList::wrap_under_get_rule(self.0) }
- }
-}
-
-impl PartialEq for CFPropertyList {
- #[inline]
- fn eq(&self, other: &CFPropertyList) -> bool {
- self.as_CFType().eq(&other.as_CFType())
- }
-}
-
-impl Eq for CFPropertyList {}
-
-impl CFPropertyList {
- /// Try to downcast the [`CFPropertyList`] to a subclass. Checking if the instance is the
- /// correct subclass happens at runtime and `None` is returned if it is not the correct type.
- /// Works similar to [`Box::downcast`] and [`CFType::downcast`].
- ///
- /// # Examples
- ///
- /// ```
- /// # use core_foundation::string::CFString;
- /// # use core_foundation::propertylist::{CFPropertyList, CFPropertyListSubClass};
- /// #
- /// // Create a string.
- /// let string: CFString = CFString::from_static_string("FooBar");
- /// // Cast it up to a property list.
- /// let propertylist: CFPropertyList = string.to_CFPropertyList();
- /// // Cast it down again.
- /// assert!(propertylist.downcast::<CFString>().unwrap().to_string() == "FooBar");
- /// ```
- ///
- /// [`CFPropertyList`]: struct.CFPropertyList.html
- /// [`Box::downcast`]: https://doc.rust-lang.org/std/boxed/struct.Box.html#method.downcast
- pub fn downcast<T: CFPropertyListSubClass>(&self) -> Option<T> {
- if self.instance_of::<T>() {
- unsafe {
- let subclass_ref = T::Ref::from_void_ptr(self.0);
- Some(T::wrap_under_get_rule(subclass_ref))
- }
- } else {
- None
- }
- }
-
- /// Similar to [`downcast`], but consumes self and can thus avoid touching the retain count.
- ///
- /// [`downcast`]: #method.downcast
- pub fn downcast_into<T: CFPropertyListSubClass>(self) -> Option<T> {
- if self.instance_of::<T>() {
- unsafe {
- let subclass_ref = T::Ref::from_void_ptr(self.0);
- mem::forget(self);
- Some(T::wrap_under_create_rule(subclass_ref))
- }
- } else {
- None
- }
- }
-}
-
-
-
-#[cfg(test)]
-pub mod test {
- use super::*;
- use string::CFString;
- use boolean::CFBoolean;
-
- #[test]
- fn test_property_list_serialization() {
- use base::{TCFType, CFEqual};
- use boolean::CFBoolean;
- use number::CFNumber;
- use dictionary::CFDictionary;
- use string::CFString;
- use super::*;
-
- let bar = CFString::from_static_string("Bar");
- let baz = CFString::from_static_string("Baz");
- let boo = CFString::from_static_string("Boo");
- let foo = CFString::from_static_string("Foo");
- let tru = CFBoolean::true_value();
- let n42 = CFNumber::from(42);
-
- let dict1 = CFDictionary::from_CFType_pairs(&[(bar.as_CFType(), boo.as_CFType()),
- (baz.as_CFType(), tru.as_CFType()),
- (foo.as_CFType(), n42.as_CFType())]);
-
- let data = create_data(dict1.as_CFTypeRef(), kCFPropertyListXMLFormat_v1_0).unwrap();
- let (dict2, _) = create_with_data(data, kCFPropertyListImmutable).unwrap();
- unsafe {
- assert!(CFEqual(dict1.as_CFTypeRef(), dict2) == 1);
- }
- }
-
- #[test]
- fn to_propertylist_retain_count() {
- let string = CFString::from_static_string("Bar");
- assert_eq!(string.retain_count(), 1);
-
- let propertylist = string.to_CFPropertyList();
- assert_eq!(string.retain_count(), 2);
- assert_eq!(propertylist.retain_count(), 2);
-
- mem::drop(string);
- assert_eq!(propertylist.retain_count(), 1);
- }
-
- #[test]
- fn downcast_string() {
- let propertylist = CFString::from_static_string("Bar").to_CFPropertyList();
- assert!(propertylist.downcast::<CFString>().unwrap().to_string() == "Bar");
- assert!(propertylist.downcast::<CFBoolean>().is_none());
- }
-
- #[test]
- fn downcast_boolean() {
- let propertylist = CFBoolean::true_value().to_CFPropertyList();
- assert!(propertylist.downcast::<CFBoolean>().is_some());
- assert!(propertylist.downcast::<CFString>().is_none());
- }
-
- #[test]
- fn downcast_into_fail() {
- let string = CFString::from_static_string("Bar");
- let propertylist = string.to_CFPropertyList();
- assert_eq!(string.retain_count(), 2);
-
- assert!(propertylist.downcast_into::<CFBoolean>().is_none());
- assert_eq!(string.retain_count(), 1);
- }
-
- #[test]
- fn downcast_into() {
- let string = CFString::from_static_string("Bar");
- let propertylist = string.to_CFPropertyList();
- assert_eq!(string.retain_count(), 2);
-
- let string2 = propertylist.downcast_into::<CFString>().unwrap();
- assert!(string2.to_string() == "Bar");
- assert_eq!(string2.retain_count(), 2);
- }
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/runloop.rs
+++ /dev/null
@@ -1,199 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![allow(non_upper_case_globals)]
-
-pub use core_foundation_sys::runloop::*;
-use core_foundation_sys::base::CFIndex;
-use core_foundation_sys::base::{kCFAllocatorDefault, CFOptionFlags};
-use core_foundation_sys::string::CFStringRef;
-
-use base::{TCFType};
-use date::{CFAbsoluteTime, CFTimeInterval};
-use filedescriptor::CFFileDescriptor;
-use string::{CFString};
-
-pub type CFRunLoopMode = CFStringRef;
-
-
-declare_TCFType!(CFRunLoop, CFRunLoopRef);
-impl_TCFType!(CFRunLoop, CFRunLoopRef, CFRunLoopGetTypeID);
-impl_CFTypeDescription!(CFRunLoop);
-
-impl CFRunLoop {
- pub fn get_current() -> CFRunLoop {
- unsafe {
- let run_loop_ref = CFRunLoopGetCurrent();
- TCFType::wrap_under_get_rule(run_loop_ref)
- }
- }
-
- pub fn get_main() -> CFRunLoop {
- unsafe {
- let run_loop_ref = CFRunLoopGetMain();
- TCFType::wrap_under_get_rule(run_loop_ref)
- }
- }
-
- pub fn run_current() {
- unsafe {
- CFRunLoopRun();
- }
- }
-
- pub fn stop(&self) {
- unsafe {
- CFRunLoopStop(self.0);
- }
- }
-
- pub fn current_mode(&self) -> Option<String> {
- unsafe {
- let string_ref = CFRunLoopCopyCurrentMode(self.0);
- if string_ref.is_null() {
- return None;
- }
-
- let cf_string: CFString = TCFType::wrap_under_create_rule(string_ref);
- Some(cf_string.to_string())
- }
- }
-
- pub fn contains_timer(&self, timer: &CFRunLoopTimer, mode: CFRunLoopMode) -> bool {
- unsafe {
- CFRunLoopContainsTimer(self.0, timer.0, mode) != 0
- }
- }
-
- pub fn add_timer(&self, timer: &CFRunLoopTimer, mode: CFRunLoopMode) {
- unsafe {
- CFRunLoopAddTimer(self.0, timer.0, mode);
- }
- }
-
- pub fn remove_timer(&self, timer: &CFRunLoopTimer, mode: CFRunLoopMode) {
- unsafe {
- CFRunLoopRemoveTimer(self.0, timer.0, mode);
- }
- }
-
- pub fn contains_source(&self, source: &CFRunLoopSource, mode: CFRunLoopMode) -> bool {
- unsafe {
- CFRunLoopContainsSource(self.0, source.0, mode) != 0
- }
- }
-
- pub fn add_source(&self, source: &CFRunLoopSource, mode: CFRunLoopMode) {
- unsafe {
- CFRunLoopAddSource(self.0, source.0, mode);
- }
- }
-
- pub fn remove_source(&self, source: &CFRunLoopSource, mode: CFRunLoopMode) {
- unsafe {
- CFRunLoopRemoveSource(self.0, source.0, mode);
- }
- }
-
- pub fn contains_observer(&self, observer: &CFRunLoopObserver, mode: CFRunLoopMode) -> bool {
- unsafe {
- CFRunLoopContainsObserver(self.0, observer.0, mode) != 0
- }
- }
-
- pub fn add_observer(&self, observer: &CFRunLoopObserver, mode: CFRunLoopMode) {
- unsafe {
- CFRunLoopAddObserver(self.0, observer.0, mode);
- }
- }
-
- pub fn remove_observer(&self, observer: &CFRunLoopObserver, mode: CFRunLoopMode) {
- unsafe {
- CFRunLoopRemoveObserver(self.0, observer.0, mode);
- }
- }
-
-}
-
-
-declare_TCFType!(CFRunLoopTimer, CFRunLoopTimerRef);
-impl_TCFType!(CFRunLoopTimer, CFRunLoopTimerRef, CFRunLoopTimerGetTypeID);
-
-impl CFRunLoopTimer {
- pub fn new(fireDate: CFAbsoluteTime, interval: CFTimeInterval, flags: CFOptionFlags, order: CFIndex, callout: CFRunLoopTimerCallBack, context: *mut CFRunLoopTimerContext) -> CFRunLoopTimer {
- unsafe {
- let timer_ref = CFRunLoopTimerCreate(kCFAllocatorDefault, fireDate, interval, flags, order, callout, context);
- TCFType::wrap_under_create_rule(timer_ref)
- }
- }
-}
-
-
-declare_TCFType!(CFRunLoopSource, CFRunLoopSourceRef);
-impl_TCFType!(CFRunLoopSource, CFRunLoopSourceRef, CFRunLoopSourceGetTypeID);
-
-impl CFRunLoopSource {
- pub fn from_file_descriptor(fd: &CFFileDescriptor, order: CFIndex) -> Option<CFRunLoopSource> {
- fd.to_run_loop_source(order)
- }
-}
-
-declare_TCFType!(CFRunLoopObserver, CFRunLoopObserverRef);
-impl_TCFType!(CFRunLoopObserver, CFRunLoopObserverRef, CFRunLoopObserverGetTypeID);
-
-#[cfg(test)]
-mod test {
- use super::*;
- use date::{CFDate, CFAbsoluteTime};
- use std::mem;
- use libc::c_void;
- use std::sync::mpsc;
-
- #[test]
- fn wait_200_milliseconds() {
- let run_loop = CFRunLoop::get_current();
-
- let now = CFDate::now().abs_time();
- let (elapsed_tx, elapsed_rx) = mpsc::channel();
- let mut info = Info {
- start_time: now,
- elapsed_tx,
- };
- let mut context = unsafe { CFRunLoopTimerContext {
- version: 0,
- info: &mut info as *mut _ as *mut c_void,
- retain: mem::zeroed(),
- release: mem::zeroed(),
- copyDescription: mem::zeroed(),
- } };
-
-
- let run_loop_timer = CFRunLoopTimer::new(now + 0.20f64, 0f64, 0, 0, timer_popped, &mut context);
- unsafe {
- run_loop.add_timer(&run_loop_timer, kCFRunLoopDefaultMode);
- }
- CFRunLoop::run_current();
- let elapsed = elapsed_rx.try_recv().unwrap();
- println!("wait_200_milliseconds, elapsed: {}", elapsed);
- assert!(elapsed > 0.19 && elapsed < 0.30);
- }
-
- struct Info {
- start_time: CFAbsoluteTime,
- elapsed_tx: mpsc::Sender<f64>,
- }
-
- extern "C" fn timer_popped(_timer: CFRunLoopTimerRef, raw_info: *mut c_void) {
- let info: *mut Info = unsafe { mem::transmute(raw_info) };
- let now = CFDate::now().abs_time();
- let elapsed = now - unsafe { (*info).start_time };
- let _ = unsafe { (*info).elapsed_tx.send(elapsed) };
- CFRunLoop::get_current().stop();
- }
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/set.rs
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! An immutable bag of elements.
-
-pub use core_foundation_sys::set::*;
-use core_foundation_sys::base::{CFTypeRef, kCFAllocatorDefault};
-
-use base::{CFIndexConvertible, TCFType};
-
-use std::mem;
-
-
-declare_TCFType!{
- /// An immutable bag of elements.
- CFSet, CFSetRef
-}
-impl_TCFType!(CFSet, CFSetRef, CFSetGetTypeID);
-impl_CFTypeDescription!(CFSet);
-
-impl CFSet {
- /// Creates a new set from a list of `CFType` instances.
- pub fn from_slice<T>(elems: &[T]) -> CFSet where T: TCFType {
- unsafe {
- let elems: Vec<CFTypeRef> = elems.iter().map(|elem| elem.as_CFTypeRef()).collect();
- let set_ref = CFSetCreate(kCFAllocatorDefault,
- mem::transmute(elems.as_ptr()),
- elems.len().to_CFIndex(),
- &kCFTypeSetCallBacks);
- TCFType::wrap_under_create_rule(set_ref)
- }
- }
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/string.rs
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! Immutable strings.
-
-pub use core_foundation_sys::string::*;
-
-use base::{CFIndexConvertible, TCFType};
-
-use core_foundation_sys::base::{Boolean, CFIndex, CFRange};
-use core_foundation_sys::base::{kCFAllocatorDefault, kCFAllocatorNull};
-use std::fmt;
-use std::str::{self, FromStr};
-use std::ptr;
-use std::ffi::CStr;
-
-
-declare_TCFType!{
- /// An immutable string in one of a variety of encodings.
- CFString, CFStringRef
-}
-impl_TCFType!(CFString, CFStringRef, CFStringGetTypeID);
-
-impl FromStr for CFString {
- type Err = ();
-
- /// See also CFString::new for a variant of this which does not return a Result
- #[inline]
- fn from_str(string: &str) -> Result<CFString, ()> {
- Ok(CFString::new(string))
- }
-}
-
-impl<'a> From<&'a str> for CFString {
- #[inline]
- fn from(string: &'a str) -> CFString {
- CFString::new(string)
- }
-}
-
-impl fmt::Display for CFString {
- fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
- unsafe {
- // Do this without allocating if we can get away with it
- let c_string = CFStringGetCStringPtr(self.0, kCFStringEncodingUTF8);
- if c_string != ptr::null() {
- let c_str = CStr::from_ptr(c_string);
- fmt.write_str(str::from_utf8_unchecked(c_str.to_bytes()))
- } else {
- let char_len = self.char_len();
-
- // First, ask how big the buffer ought to be.
- let mut bytes_required: CFIndex = 0;
- CFStringGetBytes(self.0,
- CFRange { location: 0, length: char_len },
- kCFStringEncodingUTF8,
- 0,
- false as Boolean,
- ptr::null_mut(),
- 0,
- &mut bytes_required);
-
- // Then, allocate the buffer and actually copy.
- let mut buffer = vec![b'\x00'; bytes_required as usize];
-
- let mut bytes_used: CFIndex = 0;
- let chars_written = CFStringGetBytes(self.0,
- CFRange { location: 0, length: char_len },
- kCFStringEncodingUTF8,
- 0,
- false as Boolean,
- buffer.as_mut_ptr(),
- buffer.len().to_CFIndex(),
- &mut bytes_used) as usize;
- assert!(chars_written.to_CFIndex() == char_len);
-
- // This is dangerous; we over-allocate and null-terminate the string (during
- // initialization).
- assert!(bytes_used == buffer.len().to_CFIndex());
- fmt.write_str(str::from_utf8_unchecked(&buffer))
- }
- }
- }
-}
-
-impl fmt::Debug for CFString {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- write!(f, "\"{}\"", self)
- }
-}
-
-
-impl CFString {
- /// Creates a new `CFString` instance from a Rust string.
- #[inline]
- pub fn new(string: &str) -> CFString {
- unsafe {
- let string_ref = CFStringCreateWithBytes(kCFAllocatorDefault,
- string.as_ptr(),
- string.len().to_CFIndex(),
- kCFStringEncodingUTF8,
- false as Boolean);
- CFString::wrap_under_create_rule(string_ref)
- }
- }
-
- /// Like `CFString::new`, but references a string that can be used as a backing store
- /// by virtue of being statically allocated.
- #[inline]
- pub fn from_static_string(string: &'static str) -> CFString {
- unsafe {
- let string_ref = CFStringCreateWithBytesNoCopy(kCFAllocatorDefault,
- string.as_ptr(),
- string.len().to_CFIndex(),
- kCFStringEncodingUTF8,
- false as Boolean,
- kCFAllocatorNull);
- TCFType::wrap_under_create_rule(string_ref)
- }
- }
-
- /// Returns the number of characters in the string.
- #[inline]
- pub fn char_len(&self) -> CFIndex {
- unsafe {
- CFStringGetLength(self.0)
- }
- }
-}
-
-#[test]
-fn string_and_back() {
- let original = "The quick brown fox jumped over the slow lazy dog.";
- let cfstr = CFString::from_static_string(original);
- let converted = cfstr.to_string();
- assert!(converted == original);
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/timezone.rs
+++ /dev/null
@@ -1,95 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! Core Foundation time zone objects.
-
-pub use core_foundation_sys::timezone::*;
-use core_foundation_sys::base::kCFAllocatorDefault;
-
-use base::TCFType;
-use date::{CFDate, CFTimeInterval};
-
-#[cfg(feature = "with-chrono")]
-use chrono::{FixedOffset, NaiveDateTime};
-
-
-declare_TCFType!{
- /// A time zone.
- CFTimeZone, CFTimeZoneRef
-}
-impl_TCFType!(CFTimeZone, CFTimeZoneRef, CFTimeZoneGetTypeID);
-impl_CFTypeDescription!(CFTimeZone);
-
-impl Default for CFTimeZone {
- fn default() -> CFTimeZone {
- unsafe {
- let tz_ref = CFTimeZoneCopyDefault();
- TCFType::wrap_under_create_rule(tz_ref)
- }
- }
-}
-
-impl CFTimeZone {
- #[inline]
- pub fn new(interval: CFTimeInterval) -> CFTimeZone {
- unsafe {
- let tz_ref = CFTimeZoneCreateWithTimeIntervalFromGMT(kCFAllocatorDefault, interval);
- TCFType::wrap_under_create_rule(tz_ref)
- }
- }
-
- #[inline]
- pub fn system() -> CFTimeZone {
- unsafe {
- let tz_ref = CFTimeZoneCopySystem();
- TCFType::wrap_under_create_rule(tz_ref)
- }
- }
-
- pub fn seconds_from_gmt(&self, date: CFDate) -> CFTimeInterval {
- unsafe {
- CFTimeZoneGetSecondsFromGMT(self.0, date.abs_time())
- }
- }
-
- #[cfg(feature = "with-chrono")]
- pub fn offset_at_date(&self, date: NaiveDateTime) -> FixedOffset {
- let date = CFDate::from_naive_utc(date);
- FixedOffset::east(self.seconds_from_gmt(date) as i32)
- }
-
- #[cfg(feature = "with-chrono")]
- pub fn from_offset(offset: FixedOffset) -> CFTimeZone {
- CFTimeZone::new(offset.local_minus_utc() as f64)
- }
-}
-
-#[cfg(test)]
-mod test {
- use super::CFTimeZone;
-
- #[cfg(feature = "with-chrono")]
- use chrono::{NaiveDateTime, FixedOffset};
-
- #[test]
- fn timezone_comparison() {
- let system = CFTimeZone::system();
- let default = CFTimeZone::default();
- assert_eq!(system, default);
- }
-
- #[test]
- #[cfg(feature = "with-chrono")]
- fn timezone_chrono_conversion() {
- let offset = FixedOffset::west(28800);
- let tz = CFTimeZone::from_offset(offset);
- let converted = tz.offset_at_date(NaiveDateTime::from_timestamp(0, 0));
- assert_eq!(offset, converted);
- }
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/url.rs
+++ /dev/null
@@ -1,156 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! A URL type for Core Foundation.
-
-pub use core_foundation_sys::url::*;
-
-use base::{TCFType, CFIndex};
-use string::{CFString};
-
-use core_foundation_sys::base::{kCFAllocatorDefault, Boolean};
-use std::fmt;
-use std::ptr;
-use std::path::{Path, PathBuf};
-use std::mem;
-
-use libc::{strlen, PATH_MAX};
-
-#[cfg(unix)]
-use std::os::unix::ffi::OsStrExt;
-#[cfg(unix)]
-use std::ffi::OsStr;
-
-
-declare_TCFType!(CFURL, CFURLRef);
-impl_TCFType!(CFURL, CFURLRef, CFURLGetTypeID);
-
-impl fmt::Debug for CFURL {
- #[inline]
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- unsafe {
- let string: CFString = TCFType::wrap_under_get_rule(CFURLGetString(self.0));
- write!(f, "{}", string.to_string())
- }
- }
-}
-
-impl CFURL {
- pub fn from_path<P: AsRef<Path>>(path: P, isDirectory: bool) -> Option<CFURL> {
- let path_bytes;
- #[cfg(unix)]
- {
- path_bytes = path.as_ref().as_os_str().as_bytes()
- }
- #[cfg(not(unix))]
- {
- // XXX: Getting non-valid UTF8 paths into CoreFoundation on Windows is going to be unpleasant
- // CFURLGetWideFileSystemRepresentation might help
- path_bytes = match path.as_ref().to_str() {
- Some(path) => path,
- None => return None,
- }
- }
-
- unsafe {
- let url_ref = CFURLCreateFromFileSystemRepresentation(ptr::null_mut(), path_bytes.as_ptr(), path_bytes.len() as CFIndex, isDirectory as u8);
- if url_ref.is_null() {
- return None;
- }
- Some(TCFType::wrap_under_create_rule(url_ref))
- }
- }
-
- pub fn from_file_system_path(filePath: CFString, pathStyle: CFURLPathStyle, isDirectory: bool) -> CFURL {
- unsafe {
- let url_ref = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, filePath.as_concrete_TypeRef(), pathStyle, isDirectory as u8);
- TCFType::wrap_under_create_rule(url_ref)
- }
- }
-
- #[cfg(unix)]
- pub fn to_path(&self) -> Option<PathBuf> {
- // implementing this on Windows is more complicated because of the different OsStr representation
- unsafe {
- let mut buf: [u8; PATH_MAX as usize] = mem::uninitialized();
- let result = CFURLGetFileSystemRepresentation(self.0, true as Boolean, buf.as_mut_ptr(), buf.len() as CFIndex);
- if result == false as Boolean {
- return None;
- }
- let len = strlen(buf.as_ptr() as *const i8);
- let path = OsStr::from_bytes(&buf[0..len]);
- Some(PathBuf::from(path))
- }
- }
-
- pub fn get_string(&self) -> CFString {
- unsafe {
- TCFType::wrap_under_get_rule(CFURLGetString(self.0))
- }
- }
-
- pub fn get_file_system_path(&self, pathStyle: CFURLPathStyle) -> CFString {
- unsafe {
- TCFType::wrap_under_create_rule(CFURLCopyFileSystemPath(self.as_concrete_TypeRef(), pathStyle))
- }
- }
-
- pub fn absolute(&self) -> CFURL {
- unsafe {
- TCFType::wrap_under_create_rule(CFURLCopyAbsoluteURL(self.as_concrete_TypeRef()))
- }
- }
-}
-
-#[test]
-fn file_url_from_path() {
- let path = "/usr/local/foo/";
- let cfstr_path = CFString::from_static_string(path);
- let cfurl = CFURL::from_file_system_path(cfstr_path, kCFURLPOSIXPathStyle, true);
- assert_eq!(cfurl.get_string().to_string(), "file:///usr/local/foo/");
-}
-
-#[cfg(unix)]
-#[test]
-fn non_utf8() {
- use std::ffi::OsStr;
- let path = Path::new(OsStr::from_bytes(b"/\xC0/blame"));
- let cfurl = CFURL::from_path(path, false).unwrap();
- assert_eq!(cfurl.to_path().unwrap(), path);
- let len = unsafe { CFURLGetBytes(cfurl.as_concrete_TypeRef(), ptr::null_mut(), 0) };
- assert_eq!(len, 17);
-}
-
-#[test]
-fn absolute_file_url() {
- use core_foundation_sys::url::CFURLCreateWithFileSystemPathRelativeToBase;
- use std::path::PathBuf;
-
- let path = "/usr/local/foo";
- let file = "bar";
-
- let cfstr_path = CFString::from_static_string(path);
- let cfstr_file = CFString::from_static_string(file);
- let cfurl_base = CFURL::from_file_system_path(cfstr_path, kCFURLPOSIXPathStyle, true);
- let cfurl_relative: CFURL = unsafe {
- let url_ref = CFURLCreateWithFileSystemPathRelativeToBase(kCFAllocatorDefault,
- cfstr_file.as_concrete_TypeRef(),
- kCFURLPOSIXPathStyle,
- false as u8,
- cfurl_base.as_concrete_TypeRef());
- TCFType::wrap_under_create_rule(url_ref)
- };
-
- let mut absolute_path = PathBuf::from(path);
- absolute_path.push(file);
-
- assert_eq!(cfurl_relative.get_file_system_path(kCFURLPOSIXPathStyle).to_string(), file);
- assert_eq!(cfurl_relative.absolute().get_file_system_path(kCFURLPOSIXPathStyle).to_string(),
- absolute_path.to_str().unwrap());
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/src/uuid.rs
+++ /dev/null
@@ -1,112 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! Core Foundation UUID objects.
-
-#[cfg(feature = "with-uuid")]
-extern crate uuid;
-
-pub use core_foundation_sys::uuid::*;
-use core_foundation_sys::base::kCFAllocatorDefault;
-
-use base::TCFType;
-
-#[cfg(feature = "with-uuid")]
-use self::uuid::Uuid;
-
-
-declare_TCFType! {
- /// A UUID.
- CFUUID, CFUUIDRef
-}
-impl_TCFType!(CFUUID, CFUUIDRef, CFUUIDGetTypeID);
-impl_CFTypeDescription!(CFUUID);
-
-impl CFUUID {
- #[inline]
- pub fn new() -> CFUUID {
- unsafe {
- let uuid_ref = CFUUIDCreate(kCFAllocatorDefault);
- TCFType::wrap_under_create_rule(uuid_ref)
- }
- }
-}
-
-#[cfg(feature = "with-uuid")]
-impl Into<Uuid> for CFUUID {
- fn into(self) -> Uuid {
- let b = unsafe {
- CFUUIDGetUUIDBytes(self.0)
- };
- let bytes = [
- b.byte0,
- b.byte1,
- b.byte2,
- b.byte3,
- b.byte4,
- b.byte5,
- b.byte6,
- b.byte7,
- b.byte8,
- b.byte9,
- b.byte10,
- b.byte11,
- b.byte12,
- b.byte13,
- b.byte14,
- b.byte15,
- ];
- Uuid::from_bytes(&bytes).unwrap()
- }
-}
-
-#[cfg(feature = "with-uuid")]
-impl From<Uuid> for CFUUID {
- fn from(uuid: Uuid) -> CFUUID {
- let b = uuid.as_bytes();
- let bytes = CFUUIDBytes {
- byte0: b[0],
- byte1: b[1],
- byte2: b[2],
- byte3: b[3],
- byte4: b[4],
- byte5: b[5],
- byte6: b[6],
- byte7: b[7],
- byte8: b[8],
- byte9: b[9],
- byte10: b[10],
- byte11: b[11],
- byte12: b[12],
- byte13: b[13],
- byte14: b[14],
- byte15: b[15],
- };
- unsafe {
- let uuid_ref = CFUUIDCreateFromUUIDBytes(kCFAllocatorDefault, bytes);
- TCFType::wrap_under_create_rule(uuid_ref)
- }
- }
-}
-
-
-#[cfg(test)]
-#[cfg(feature = "with-uuid")]
-mod test {
- use super::CFUUID;
- use uuid::Uuid;
-
- #[test]
- fn uuid_conversion() {
- let cf_uuid = CFUUID::new();
- let uuid: Uuid = cf_uuid.clone().into();
- let converted = CFUUID::from(uuid);
- assert!(cf_uuid == converted);
- }
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-0.5.1/tests/use_macro_outside_crate.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-#[macro_use]
-extern crate core_foundation;
-extern crate libc;
-
-use core_foundation::base::{CFComparisonResult, TCFType};
-use libc::c_void;
-
-// sys equivalent stuff that must be declared
-
-#[repr(C)]
-pub struct __CFFooBar(c_void);
-
-pub type CFFooBarRef = *const __CFFooBar;
-
-extern "C" {
- pub fn CFFooBarGetTypeID() -> core_foundation::base::CFTypeID;
- pub fn fake_compare(
- this: CFFooBarRef,
- other: CFFooBarRef,
- context: *mut c_void,
- ) -> CFComparisonResult;
-}
-
-// Try to use the macros outside of the crate
-
-declare_TCFType!(CFFooBar, CFFooBarRef);
-impl_TCFType!(CFFooBar, CFFooBarRef, CFFooBarGetTypeID);
-impl_CFTypeDescription!(CFFooBar);
-impl_CFComparison!(CFFooBar, fake_compare);
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/.cargo-checksum.json
+++ /dev/null
@@ -1,1 +0,0 @@
-{"files":{"Cargo.toml":"08b77adecca4222d97b0fb359b1c9ce97983e0e0914a4418834c032395af76ea","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","build.rs":"9433ed3b20cc99e716dda4c6d8507c29bc04882544cbbea8d4e48ba80fd0fa12","src/array.rs":"c70be1c0485612ac327a4fc9ca87098034e13df80dead23167560a38471fb823","src/base.rs":"37ad5b765d9e70f043f70a26da65cc46f0af5f1361e431e6f8591a143a31da31","src/bundle.rs":"b4e0e9b7ca2e35e3dc9bee316690538a5d17a470f8173f6b80c6816c847d12ec","src/data.rs":"21e968951fe56e080d33474f4438de2dfb7e0c8af426a6dfb100efdd6c530eec","src/date.rs":"90f29b07d3bd1549a3ab64adaaf153aff5ba546c1cd449f7248479d26bce9687","src/dictionary.rs":"37d881fbcf3232f90ab8648084b0f26b45ffee882b95e76831ac206f3e35f7de","src/error.rs":"61bc31a401ec6c8495668175eade9284e257da056fc666af74a5555af5daf33f","src/filedescriptor.rs":"14800c805b66f1fd6f995a6e73138d65a724163acb8a3f8f2539c807d333473d","src/lib.rs":"1038a1292f6f6c790ae055242015b8e3b91c2cccce34bfba240403399149f64c","src/messageport.rs":"f22b8552ff8b8e1edf25fe322eeabd9d7e5472b11514b95bc936387e4fa51b2a","src/number.rs":"4e69c688f24a1226fb40faec7d18861b5a617afcedbb352331c45a8e4eff292a","src/propertylist.rs":"cc2b27f8f8ebc80c03871b7b1ad50ee348539b016078ce721c86b8cd5f9d75bd","src/runloop.rs":"1d4aba9425669ef32450396c31655a90daf0e67d579e4617465fb7abe23c047f","src/set.rs":"22055b5ce6a2ce37847ee955f5e6e517348a351770d335373704776bc5412b9f","src/string.rs":"0e9373c6e48c97d7cbdb2ceaa07bc0af4e5d25ab0f91b138b4f8667cff337f4e","src/timezone.rs":"6711924b967d96ba88be4976cf17dfd3f9573033115da8e61ad07e8b0f26cdb7","src/url.rs":"b85110fe203c685719ba92517ff3c09ce0fe358e15380ecc0bd18356ac3573ed","src/uuid.rs":"e591e0bac875832acc15ea7ee0c9bff296543f4f77470101de0602ee69c2e527"},"package":"716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa"}
\ No newline at end of file
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/Cargo.toml
+++ /dev/null
@@ -1,27 +0,0 @@
-# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
-#
-# When uploading crates to the registry Cargo will automatically
-# "normalize" Cargo.toml files for maximal compatibility
-# with all versions of Cargo and also rewrite `path` dependencies
-# to registry (e.g. crates.io) dependencies
-#
-# If you believe there's an error in this file please file an
-# issue against the rust-lang/cargo repository. If you're
-# editing this file be aware that the upstream Cargo.toml
-# will likely look very different (and much more reasonable)
-
-[package]
-name = "core-foundation-sys"
-version = "0.5.1"
-authors = ["The Servo Project Developers"]
-build = "build.rs"
-description = "Bindings to Core Foundation for OS X"
-homepage = "https://github.com/servo/core-foundation-rs"
-license = "MIT / Apache-2.0"
-repository = "https://github.com/servo/core-foundation-rs"
-[dependencies.libc]
-version = "0.2"
-
-[features]
-mac_os_10_7_support = []
-mac_os_10_8_features = []
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/LICENSE-APACHE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
-Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/LICENSE-MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-Copyright (c) 2012-2013 Mozilla Foundation
-
-Permission is hereby granted, free of charge, to any
-person obtaining a copy of this software and associated
-documentation files (the "Software"), to deal in the
-Software without restriction, including without
-limitation the rights to use, copy, modify, merge,
-publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software
-is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice
-shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
-ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
-TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
-PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
-SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
-IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/build.rs
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-fn main() {
- if std::env::var("TARGET").unwrap().contains("-apple") {
- println!("cargo:rustc-link-lib=framework=CoreFoundation");
- }
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/array.rs
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use libc::c_void;
-
-use base::{CFRange, CFIndex, CFAllocatorRef, CFTypeID, Boolean};
-use string::CFStringRef;
-
-pub type CFArrayRetainCallBack = extern "C" fn(allocator: CFAllocatorRef, value: *const c_void) -> *const c_void;
-pub type CFArrayReleaseCallBack = extern "C" fn(allocator: CFAllocatorRef, value: *const c_void);
-pub type CFArrayCopyDescriptionCallBack = extern "C" fn(value: *const c_void) -> CFStringRef;
-pub type CFArrayEqualCallBack = extern "C" fn(value1: *const c_void, value2: *const c_void) -> Boolean;
-
-#[repr(C)]
-#[derive(Clone, Copy)]
-pub struct CFArrayCallBacks {
- pub version: CFIndex,
- pub retain: CFArrayRetainCallBack,
- pub release: CFArrayReleaseCallBack,
- pub copyDescription: CFArrayCopyDescriptionCallBack,
- pub equal: CFArrayEqualCallBack,
-}
-
-#[repr(C)]
-pub struct __CFArray(c_void);
-
-pub type CFArrayRef = *const __CFArray;
-
-extern {
- /*
- * CFArray.h
- */
- pub static kCFTypeArrayCallBacks: CFArrayCallBacks;
-
- pub fn CFArrayCreate(allocator: CFAllocatorRef, values: *const *const c_void,
- numValues: CFIndex, callBacks: *const CFArrayCallBacks) -> CFArrayRef;
- pub fn CFArrayCreateCopy(allocator: CFAllocatorRef , theArray: CFArrayRef) -> CFArrayRef;
-
- // CFArrayBSearchValues
- // CFArrayContainsValue
- pub fn CFArrayGetCount(theArray: CFArrayRef) -> CFIndex;
- // CFArrayGetCountOfValue
- // CFArrayGetFirstIndexOfValue
- // CFArrayGetLastIndexOfValue
- pub fn CFArrayGetValues(theArray: CFArrayRef, range: CFRange, values: *mut *const c_void);
- pub fn CFArrayGetValueAtIndex(theArray: CFArrayRef, idx: CFIndex) -> *const c_void;
- // CFArrayApplyFunction
- pub fn CFArrayGetTypeID() -> CFTypeID;
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/base.rs
+++ /dev/null
@@ -1,154 +0,0 @@
-// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use std::cmp::Ordering;
-use libc::{c_uint, c_long, c_ulong, c_void, c_int};
-use string::CFStringRef;
-
-pub type Boolean = u8;
-pub type CFIndex = c_long;
-pub type mach_port_t = c_uint;
-pub type CFAllocatorRef = *const c_void;
-pub type CFNullRef = *const c_void;
-pub type CFHashCode = c_ulong;
-pub type CFTypeID = c_ulong;
-pub type CFTypeRef = *const c_void;
-pub type CFOptionFlags = u32;
-pub type OSStatus = i32;
-pub type SInt32 = c_int;
-
-#[repr(i64)]
-#[derive(Clone, Copy)]
-pub enum CFComparisonResult {
- LessThan = -1,
- EqualTo = 0,
- GreaterThan = 1,
-}
-
-impl Into<Ordering> for CFComparisonResult {
- fn into(self) -> Ordering {
- match self {
- CFComparisonResult::LessThan => Ordering::Less,
- CFComparisonResult::EqualTo => Ordering::Equal,
- CFComparisonResult::GreaterThan => Ordering::Greater
- }
- }
-}
-
-#[repr(C)]
-#[derive(Clone, Copy)]
-pub struct CFRange {
- pub location: CFIndex,
- pub length: CFIndex
-}
-
-// for back-compat
-impl CFRange {
- pub fn init(location: CFIndex, length: CFIndex) -> CFRange {
- CFRange {
- location: location,
- length: length,
- }
- }
-}
-
-pub type CFAllocatorRetainCallBack = extern "C" fn(info: *mut c_void) -> *mut c_void;
-pub type CFAllocatorReleaseCallBack = extern "C" fn(info: *mut c_void);
-pub type CFAllocatorCopyDescriptionCallBack = extern "C" fn(info: *mut c_void) -> CFStringRef;
-pub type CFAllocatorAllocateCallBack = extern "C" fn(allocSize: CFIndex, hint: CFOptionFlags, info: *mut c_void) -> *mut c_void;
-pub type CFAllocatorReallocateCallBack = extern "C" fn(ptr: *mut c_void, newsize: CFIndex, hint: CFOptionFlags, info: *mut c_void) -> *mut c_void;
-pub type CFAllocatorDeallocateCallBack = extern "C" fn(ptr: *mut c_void, info: *mut c_void);
-pub type CFAllocatorPreferredSizeCallBack = extern "C" fn(size: CFIndex, hint: CFOptionFlags, info: *mut c_void) -> CFIndex;
-
-#[repr(C)]
-#[derive(Clone, Copy)]
-pub struct CFAllocatorContext {
- pub version: CFIndex,
- pub info: *mut c_void,
- pub retain: CFAllocatorRetainCallBack,
- pub release: CFAllocatorReleaseCallBack,
- pub copyDescription: CFAllocatorCopyDescriptionCallBack,
- pub allocate: CFAllocatorAllocateCallBack,
- pub reallocate: CFAllocatorReallocateCallBack,
- pub deallocate: CFAllocatorDeallocateCallBack,
- pub preferredSize: CFAllocatorPreferredSizeCallBack
-}
-
-/// Trait for all types which are Core Foundation reference types.
-pub trait TCFTypeRef {
- fn as_void_ptr(&self) -> *const c_void;
-
- unsafe fn from_void_ptr(ptr: *const c_void) -> Self;
-}
-
-impl<T> TCFTypeRef for *const T {
- fn as_void_ptr(&self) -> *const c_void {
- (*self) as *const c_void
- }
-
- unsafe fn from_void_ptr(ptr: *const c_void) -> Self {
- ptr as *const T
- }
-}
-
-impl<T> TCFTypeRef for *mut T {
- fn as_void_ptr(&self) -> *const c_void {
- (*self) as *const T as *const c_void
- }
-
- unsafe fn from_void_ptr(ptr: *const c_void) -> Self {
- ptr as *const T as *mut T
- }
-}
-
-extern {
- /*
- * CFBase.h
- */
-
- /* CFAllocator Reference */
-
- pub static kCFAllocatorDefault: CFAllocatorRef;
- pub static kCFAllocatorSystemDefault: CFAllocatorRef;
- pub static kCFAllocatorMalloc: CFAllocatorRef;
- pub static kCFAllocatorMallocZone: CFAllocatorRef;
- pub static kCFAllocatorNull: CFAllocatorRef;
- pub static kCFAllocatorUseContext: CFAllocatorRef;
-
- pub fn CFAllocatorCreate(allocator: CFAllocatorRef, context: *mut CFAllocatorContext) -> CFAllocatorRef;
- pub fn CFAllocatorAllocate(allocator: CFAllocatorRef, size: CFIndex, hint: CFOptionFlags) -> *mut c_void;
- pub fn CFAllocatorDeallocate(allocator: CFAllocatorRef, ptr: *mut c_void);
- pub fn CFAllocatorGetPreferredSizeForSize(allocator: CFAllocatorRef, size: CFIndex, hint: CFOptionFlags) -> CFIndex;
- pub fn CFAllocatorReallocate(allocator: CFAllocatorRef, ptr: *mut c_void, newsize: CFIndex, hint: CFOptionFlags) -> *mut c_void;
- pub fn CFAllocatorGetDefault() -> CFAllocatorRef;
- pub fn CFAllocatorSetDefault(allocator: CFAllocatorRef);
- pub fn CFAllocatorGetContext(allocator: CFAllocatorRef, context: *mut CFAllocatorContext);
- pub fn CFAllocatorGetTypeID() -> CFTypeID;
-
- /* CFNull Reference */
-
- pub static kCFNull: CFNullRef;
-
- /* CFType Reference */
-
- //fn CFCopyTypeIDDescription
- //fn CFGetAllocator
- pub fn CFCopyDescription(cf: CFTypeRef) -> CFStringRef;
- pub fn CFEqual(cf1: CFTypeRef, cf2: CFTypeRef) -> Boolean;
- pub fn CFGetRetainCount(cf: CFTypeRef) -> CFIndex;
- pub fn CFGetTypeID(cf: CFTypeRef) -> CFTypeID;
- pub fn CFHash(cf: CFTypeRef) -> CFHashCode;
- //fn CFMakeCollectable
- pub fn CFRelease(cf: CFTypeRef);
- pub fn CFRetain(cf: CFTypeRef) -> CFTypeRef;
- pub fn CFShow(obj: CFTypeRef);
-
- /* Base Utilities Reference */
- // N.B. Some things missing here.
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/bundle.rs
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use libc::c_void;
-
-use base::{CFTypeID, CFAllocatorRef};
-use url::CFURLRef;
-use dictionary::CFDictionaryRef;
-use string::CFStringRef;
-
-#[repr(C)]
-pub struct __CFBundle(c_void);
-
-pub type CFBundleRef = *mut __CFBundle;
-
-extern {
- /*
- * CFBundle.h
- */
- pub fn CFBundleCreate(allocator: CFAllocatorRef, bundleURL: CFURLRef) -> CFBundleRef;
-
- pub fn CFBundleGetBundleWithIdentifier(bundleID: CFStringRef) -> CFBundleRef;
- pub fn CFBundleGetFunctionPointerForName(bundle: CFBundleRef, function_name: CFStringRef) -> *const c_void;
- pub fn CFBundleGetMainBundle() -> CFBundleRef;
- pub fn CFBundleGetInfoDictionary(bundle: CFBundleRef) -> CFDictionaryRef;
-
- pub fn CFBundleGetTypeID() -> CFTypeID;
- pub fn CFBundleCopyExecutableURL(bundle: CFBundleRef) -> CFURLRef;
- pub fn CFBundleCopyPrivateFrameworksURL(bundle: CFBundleRef) -> CFURLRef;
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/data.rs
+++ /dev/null
@@ -1,22 +0,0 @@
-use libc::c_void;
-
-use base::{CFAllocatorRef, CFTypeID, CFIndex};
-
-#[repr(C)]
-pub struct __CFData(c_void);
-
-pub type CFDataRef = *const __CFData;
-
-extern {
- /*
- * CFData.h
- */
-
- pub fn CFDataCreate(allocator: CFAllocatorRef,
- bytes: *const u8, length: CFIndex) -> CFDataRef;
- //fn CFDataFind
- pub fn CFDataGetBytePtr(theData: CFDataRef) -> *const u8;
- pub fn CFDataGetLength(theData: CFDataRef) -> CFIndex;
-
- pub fn CFDataGetTypeID() -> CFTypeID;
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/date.rs
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use libc::c_void;
-
-use base::{CFAllocatorRef, CFComparisonResult, CFTypeID};
-
-#[repr(C)]
-pub struct __CFDate(c_void);
-
-pub type CFDateRef = *const __CFDate;
-
-pub type CFTimeInterval = f64;
-pub type CFAbsoluteTime = CFTimeInterval;
-
-extern {
- pub static kCFAbsoluteTimeIntervalSince1904: CFTimeInterval;
- pub static kCFAbsoluteTimeIntervalSince1970: CFTimeInterval;
-
- pub fn CFAbsoluteTimeGetCurrent() -> CFAbsoluteTime;
-
- pub fn CFDateCreate(allocator: CFAllocatorRef, at: CFAbsoluteTime) -> CFDateRef;
- pub fn CFDateGetAbsoluteTime(date: CFDateRef) -> CFAbsoluteTime;
- pub fn CFDateGetTimeIntervalSinceDate(date: CFDateRef, other: CFDateRef) -> CFTimeInterval;
- pub fn CFDateCompare(date: CFDateRef, other: CFDateRef, context: *mut c_void) -> CFComparisonResult;
-
- pub fn CFDateGetTypeID() -> CFTypeID;
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/dictionary.rs
+++ /dev/null
@@ -1,91 +0,0 @@
-// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use libc::{c_void};
-
-use base::{CFAllocatorRef, CFHashCode, CFIndex, CFTypeID, Boolean};
-use string::CFStringRef;
-
-pub type CFDictionaryApplierFunction = extern "C" fn(key: *const c_void, value: *const c_void, context: *mut c_void);
-
-pub type CFDictionaryRetainCallBack = extern "C" fn(allocator: CFAllocatorRef, value: *const c_void) -> *const c_void;
-pub type CFDictionaryReleaseCallBack = extern "C" fn(allocator: CFAllocatorRef, value: *const c_void);
-pub type CFDictionaryCopyDescriptionCallBack = extern "C" fn(value: *const c_void) -> CFStringRef;
-pub type CFDictionaryEqualCallBack = extern "C" fn(value1: *const c_void, value2: *const c_void) -> Boolean;
-pub type CFDictionaryHashCallBack = extern "C" fn(value: *const c_void) -> CFHashCode;
-
-#[repr(C)]
-#[derive(Clone, Copy)]
-pub struct CFDictionaryKeyCallBacks {
- pub version: CFIndex,
- pub retain: CFDictionaryRetainCallBack,
- pub release: CFDictionaryReleaseCallBack,
- pub copyDescription: CFDictionaryCopyDescriptionCallBack,
- pub equal: CFDictionaryEqualCallBack,
- pub hash: CFDictionaryHashCallBack
-}
-
-#[repr(C)]
-#[derive(Clone, Copy)]
-pub struct CFDictionaryValueCallBacks {
- pub version: CFIndex,
- pub retain: CFDictionaryRetainCallBack,
- pub release: CFDictionaryReleaseCallBack,
- pub copyDescription: CFDictionaryCopyDescriptionCallBack,
- pub equal: CFDictionaryEqualCallBack
-}
-
-#[repr(C)]
-pub struct __CFDictionary(c_void);
-
-pub type CFDictionaryRef = *const __CFDictionary;
-pub type CFMutableDictionaryRef = *mut __CFDictionary;
-
-extern {
- /*
- * CFDictionary.h
- */
-
- pub static kCFTypeDictionaryKeyCallBacks: CFDictionaryKeyCallBacks;
- pub static kCFTypeDictionaryValueCallBacks: CFDictionaryValueCallBacks;
-
- pub fn CFDictionaryContainsKey(theDict: CFDictionaryRef, key: *const c_void) -> Boolean;
- pub fn CFDictionaryCreate(allocator: CFAllocatorRef, keys: *const *const c_void, values: *const *const c_void,
- numValues: CFIndex, keyCallBacks: *const CFDictionaryKeyCallBacks,
- valueCallBacks: *const CFDictionaryValueCallBacks)
- -> CFDictionaryRef;
- pub fn CFDictionaryGetCount(theDict: CFDictionaryRef) -> CFIndex;
- pub fn CFDictionaryGetTypeID() -> CFTypeID;
- pub fn CFDictionaryGetValueIfPresent(theDict: CFDictionaryRef, key: *const c_void, value: *mut *const c_void)
- -> Boolean;
- pub fn CFDictionaryApplyFunction(theDict: CFDictionaryRef,
- applier: CFDictionaryApplierFunction,
- context: *mut c_void);
- pub fn CFDictionaryGetKeysAndValues(theDict: CFDictionaryRef,
- keys: *mut *const c_void,
- values: *mut *const c_void);
-
- pub fn CFDictionaryCreateMutable(allocator: CFAllocatorRef, capacity: CFIndex,
- keyCallbacks: *const CFDictionaryKeyCallBacks,
- valueCallbacks: *const CFDictionaryValueCallBacks) -> CFMutableDictionaryRef;
- pub fn CFDictionaryCreateMutableCopy(allocator: CFAllocatorRef, capacity: CFIndex,
- theDict: CFDictionaryRef) -> CFMutableDictionaryRef;
- pub fn CFDictionaryAddValue(theDict: CFMutableDictionaryRef,
- key: *const c_void,
- value: *const c_void);
- pub fn CFDictionarySetValue(theDict: CFMutableDictionaryRef,
- key: *const c_void,
- value: *const c_void);
- pub fn CFDictionaryReplaceValue(theDict: CFMutableDictionaryRef,
- key: *const c_void,
- value: *const c_void);
- pub fn CFDictionaryRemoveValue(theDict: CFMutableDictionaryRef,
- key: *const c_void);
- pub fn CFDictionaryRemoveAllValues(theDict: CFMutableDictionaryRef);
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/error.rs
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2016 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use libc::c_void;
-
-use base::{CFTypeID, CFIndex};
-use string::CFStringRef;
-
-#[repr(C)]
-pub struct __CFError(c_void);
-
-pub type CFErrorRef = *mut __CFError;
-
-extern "C" {
- pub fn CFErrorGetTypeID() -> CFTypeID;
-
- pub static kCFErrorDomainPOSIX: CFStringRef;
- pub static kCFErrorDomainOSStatus: CFStringRef;
- pub static kCFErrorDomainMach: CFStringRef;
- pub static kCFErrorDomainCocoa: CFStringRef;
-
- pub fn CFErrorGetDomain(err: CFErrorRef) -> CFStringRef;
- pub fn CFErrorGetCode(err: CFErrorRef) -> CFIndex;
-
- pub fn CFErrorCopyDescription(err: CFErrorRef) -> CFStringRef;
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/filedescriptor.rs
+++ /dev/null
@@ -1,48 +0,0 @@
-use libc::{c_void, c_int};
-use base::{Boolean, CFIndex, CFTypeID, CFOptionFlags, CFAllocatorRef};
-use string::CFStringRef;
-use runloop::CFRunLoopSourceRef;
-
-pub type CFFileDescriptorNativeDescriptor = c_int;
-
-#[repr(C)]
-pub struct __CFFileDescriptor(c_void);
-
-pub type CFFileDescriptorRef = *mut __CFFileDescriptor;
-
-/* Callback Reason Types */
-pub const kCFFileDescriptorReadCallBack: CFOptionFlags = 1 << 0;
-pub const kCFFileDescriptorWriteCallBack: CFOptionFlags = 1 << 1;
-
-pub type CFFileDescriptorCallBack = extern "C" fn (f: CFFileDescriptorRef, callBackTypes: CFOptionFlags, info: *mut c_void);
-
-#[repr(C)]
-#[derive(Clone, Copy)]
-pub struct CFFileDescriptorContext {
- pub version: CFIndex,
- pub info: *mut c_void,
- pub retain: Option<extern "C" fn (info: *const c_void) -> *const c_void>,
- pub release: Option<extern "C" fn (info: *const c_void)>,
- pub copyDescription: Option<extern "C" fn (info: *const c_void) -> CFStringRef>,
-}
-
-extern {
- /*
- * CFFileDescriptor.h
- */
- pub fn CFFileDescriptorGetTypeID() -> CFTypeID;
-
- pub fn CFFileDescriptorCreate(allocator: CFAllocatorRef, fd: CFFileDescriptorNativeDescriptor, closeOnInvalidate: Boolean, callout: CFFileDescriptorCallBack, context: *const CFFileDescriptorContext) -> CFFileDescriptorRef;
-
- pub fn CFFileDescriptorGetNativeDescriptor(f: CFFileDescriptorRef) -> CFFileDescriptorNativeDescriptor;
-
- pub fn CFFileDescriptorGetContext(f: CFFileDescriptorRef, context: *mut CFFileDescriptorContext);
-
- pub fn CFFileDescriptorEnableCallBacks(f: CFFileDescriptorRef, callBackTypes: CFOptionFlags);
- pub fn CFFileDescriptorDisableCallBacks(f: CFFileDescriptorRef, callBackTypes: CFOptionFlags);
-
- pub fn CFFileDescriptorInvalidate(f: CFFileDescriptorRef);
- pub fn CFFileDescriptorIsValid(f: CFFileDescriptorRef) -> Boolean;
-
- pub fn CFFileDescriptorCreateRunLoopSource(allocator: CFAllocatorRef, f: CFFileDescriptorRef, order: CFIndex) -> CFRunLoopSourceRef;
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/lib.rs
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-#![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, improper_ctypes)]
-
-#![cfg_attr(all(feature="mac_os_10_7_support", feature="mac_os_10_8_features"), feature(linkage))] // back-compat requires weak linkage
-
-extern crate libc;
-
-pub mod array;
-pub mod base;
-pub mod bundle;
-pub mod data;
-pub mod date;
-pub mod dictionary;
-pub mod error;
-pub mod filedescriptor;
-pub mod messageport;
-pub mod number;
-pub mod propertylist;
-pub mod runloop;
-pub mod set;
-pub mod string;
-pub mod timezone;
-pub mod url;
-pub mod uuid;
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/messageport.rs
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use libc::c_void;
-
-use base::{CFAllocatorRef, CFIndex, CFTypeID, Boolean};
-use data::CFDataRef;
-use date::CFTimeInterval;
-use runloop::CFRunLoopSourceRef;
-use string::CFStringRef;
-
-#[repr(C)]
-#[derive(Copy, Clone)]
-#[derive(Debug)]
-pub struct CFMessagePortContext {
- pub version: CFIndex,
- pub info: *mut c_void,
- pub retain: Option<unsafe extern fn(info: *const c_void) -> *const c_void>,
- pub release: Option<unsafe extern fn(info: *const c_void)>,
- pub copyDescription: Option<unsafe extern fn(info: *const c_void)
- -> CFStringRef>,
-}
-
-pub type CFMessagePortCallBack = Option<
- unsafe extern fn(local: CFMessagePortRef,
- msgid: i32,
- data: CFDataRef,
- info: *mut c_void) -> CFDataRef>;
-
-pub type CFMessagePortInvalidationCallBack = Option<
- unsafe extern "C" fn(ms: CFMessagePortRef, info: *mut c_void)>;
-
-#[repr(C)]
-pub struct __CFMessagePort(c_void);
-pub type CFMessagePortRef = *mut __CFMessagePort;
-
-extern {
- /*
- * CFMessagePort.h
- */
- pub fn CFMessagePortGetTypeID() -> CFTypeID;
- pub fn CFMessagePortCreateLocal(allocator: CFAllocatorRef,
- name: CFStringRef,
- callout: CFMessagePortCallBack,
- context: *const CFMessagePortContext,
- shouldFreeInfo: *mut Boolean)
- -> CFMessagePortRef;
- pub fn CFMessagePortCreateRemote(allocator: CFAllocatorRef,
- name: CFStringRef) -> CFMessagePortRef;
- pub fn CFMessagePortIsRemote(ms: CFMessagePortRef) -> Boolean;
- pub fn CFMessagePortGetName(ms: CFMessagePortRef) -> CFStringRef;
- pub fn CFMessagePortSetName(ms: CFMessagePortRef, newName: CFStringRef)
- -> Boolean;
- pub fn CFMessagePortGetContext(ms: CFMessagePortRef,
- context: *mut CFMessagePortContext);
- pub fn CFMessagePortInvalidate(ms: CFMessagePortRef);
- pub fn CFMessagePortIsValid(ms: CFMessagePortRef) -> Boolean;
- pub fn CFMessagePortGetInvalidationCallBack(ms: CFMessagePortRef)
- -> CFMessagePortInvalidationCallBack;
- pub fn CFMessagePortSetInvalidationCallBack(ms: CFMessagePortRef,
- callout: CFMessagePortInvalidationCallBack);
- pub fn CFMessagePortSendRequest(remote: CFMessagePortRef, msgid: i32,
- data: CFDataRef,
- sendTimeout: CFTimeInterval,
- rcvTimeout: CFTimeInterval,
- replyMode: CFStringRef,
- returnData: *mut CFDataRef) -> i32;
- pub fn CFMessagePortCreateRunLoopSource(allocator: CFAllocatorRef,
- local: CFMessagePortRef,
- order: CFIndex)
- -> CFRunLoopSourceRef;
- // CFMessagePortSetDispatchQueue
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/number.rs
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use libc::c_void;
-
-use base::{CFAllocatorRef, CFTypeID, CFComparisonResult};
-
-#[repr(C)]
-pub struct __CFBoolean(c_void);
-
-pub type CFBooleanRef = *const __CFBoolean;
-
-pub type CFNumberType = u32;
-
-// members of enum CFNumberType
-// static kCFNumberSInt8Type: CFNumberType = 1;
-// static kCFNumberSInt16Type: CFNumberType = 2;
-pub static kCFNumberSInt32Type: CFNumberType = 3;
-pub static kCFNumberSInt64Type: CFNumberType = 4;
-pub static kCFNumberFloat32Type: CFNumberType = 5;
-pub static kCFNumberFloat64Type: CFNumberType = 6;
-// static kCFNumberCharType: CFNumberType = 7;
-// static kCFNumberShortType: CFNumberType = 8;
-// static kCFNumberIntType: CFNumberType = 9;
-// static kCFNumberLongType: CFNumberType = 10;
-// static kCFNumberLongLongType: CFNumberType = 11;
-// static kCFNumberFloatType: CFNumberType = 12;
-// static kCFNumberDoubleType: CFNumberType = 13;
-// static kCFNumberCFIndexType: CFNumberType = 14;
-// static kCFNumberNSIntegerType: CFNumberType = 15;
-// static kCFNumberCGFloatType: CFNumberType = 16;
-// static kCFNumberMaxType: CFNumberType = 16;
-
-// This is an enum due to zero-sized types warnings.
-// For more details see https://github.com/rust-lang/rust/issues/27303
-pub enum __CFNumber {}
-
-pub type CFNumberRef = *const __CFNumber;
-
-extern {
- /*
- * CFNumber.h
- */
- pub static kCFBooleanTrue: CFBooleanRef;
- pub static kCFBooleanFalse: CFBooleanRef;
-
- pub fn CFBooleanGetTypeID() -> CFTypeID;
- pub fn CFNumberCreate(allocator: CFAllocatorRef, theType: CFNumberType, valuePtr: *const c_void)
- -> CFNumberRef;
- //fn CFNumberGetByteSize
- pub fn CFNumberGetValue(number: CFNumberRef, theType: CFNumberType, valuePtr: *mut c_void) -> bool;
- pub fn CFNumberCompare(date: CFNumberRef, other: CFNumberRef, context: *mut c_void) -> CFComparisonResult;
- pub fn CFNumberGetTypeID() -> CFTypeID;
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/propertylist.rs
+++ /dev/null
@@ -1,37 +0,0 @@
-use base::{CFAllocatorRef, CFIndex, CFOptionFlags, CFTypeRef};
-use data::CFDataRef;
-use error::CFErrorRef;
-
-pub type CFPropertyListRef = CFTypeRef;
-
-pub type CFPropertyListFormat = CFIndex;
-pub const kCFPropertyListOpenStepFormat: CFPropertyListFormat = 1;
-pub const kCFPropertyListXMLFormat_v1_0: CFPropertyListFormat = 100;
-pub const kCFPropertyListBinaryFormat_v1_0: CFPropertyListFormat = 200;
-
-pub type CFPropertyListMutabilityOptions = CFOptionFlags;
-pub const kCFPropertyListImmutable: CFPropertyListMutabilityOptions = 0;
-pub const kCFPropertyListMutableContainers: CFPropertyListMutabilityOptions = 1;
-pub const kCFPropertyListMutableContainersAndLeaves: CFPropertyListMutabilityOptions = 2;
-
-extern "C" {
- // CFPropertyList.h
- //
-
- // fn CFPropertyListCreateDeepCopy
- // fn CFPropertyListIsValid
- pub fn CFPropertyListCreateWithData(allocator: CFAllocatorRef,
- data: CFDataRef,
- options: CFPropertyListMutabilityOptions,
- format: *mut CFPropertyListFormat,
- error: *mut CFErrorRef)
- -> CFPropertyListRef;
- // fn CFPropertyListCreateWithStream
- // fn CFPropertyListWrite
- pub fn CFPropertyListCreateData(allocator: CFAllocatorRef,
- propertyList: CFPropertyListRef,
- format: CFPropertyListFormat,
- options: CFOptionFlags,
- error: *mut CFErrorRef)
- -> CFDataRef;
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/runloop.rs
+++ /dev/null
@@ -1,164 +0,0 @@
-// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use libc::c_void;
-
-use array::CFArrayRef;
-use base::{Boolean, CFIndex, CFTypeID, CFAllocatorRef, CFOptionFlags, CFHashCode, mach_port_t};
-use date::{CFAbsoluteTime, CFTimeInterval};
-use string::CFStringRef;
-
-#[repr(C)]
-pub struct __CFRunLoop(c_void);
-
-pub type CFRunLoopRef = *mut __CFRunLoop;
-
-#[repr(C)]
-pub struct __CFRunLoopSource(c_void);
-
-pub type CFRunLoopSourceRef = *mut __CFRunLoopSource;
-
-#[repr(C)]
-pub struct __CFRunLoopObserver(c_void);
-
-pub type CFRunLoopObserverRef = *mut __CFRunLoopObserver;
-
-// Reasons for CFRunLoopRunInMode() to Return
-pub const kCFRunLoopRunFinished: i32 = 1;
-pub const kCFRunLoopRunStopped: i32 = 2;
-pub const kCFRunLoopRunTimedOut: i32 = 3;
-pub const kCFRunLoopRunHandledSource: i32 = 4;
-
-// Run Loop Observer Activities
-//typedef CF_OPTIONS(CFOptionFlags, CFRunLoopActivity) {
-pub type CFRunLoopActivity = CFOptionFlags;
-pub const kCFRunLoopEntry: CFOptionFlags = 1 << 0;
-pub const kCFRunLoopBeforeTimers: CFOptionFlags = 1 << 1;
-pub const kCFRunLoopBeforeSources: CFOptionFlags = 1 << 2;
-pub const kCFRunLoopBeforeWaiting: CFOptionFlags = 1 << 5;
-pub const kCFRunLoopAfterWaiting: CFOptionFlags = 1 << 6;
-pub const kCFRunLoopExit: CFOptionFlags = 1 << 7;
-pub const kCFRunLoopAllActivities: CFOptionFlags = 0x0FFFFFFF;
-
-#[repr(C)]
-pub struct CFRunLoopSourceContext {
- pub version: CFIndex,
- pub info: *mut c_void,
- pub retain: extern "C" fn (info: *const c_void) -> *const c_void,
- pub release: extern "C" fn (info: *const c_void),
- pub copyDescription: extern "C" fn (info: *const c_void) -> CFStringRef,
- pub equal: extern "C" fn (info1: *const c_void, info2: *const c_void) -> Boolean,
- pub hash: extern "C" fn (info: *const c_void) -> CFHashCode,
- pub schedule: extern "C" fn (info: *const c_void, rl: CFRunLoopRef, mode: CFStringRef),
- pub cancel: extern "C" fn (info: *const c_void, rl: CFRunLoopRef, mode: CFStringRef),
- pub perform: extern "C" fn (info: *const c_void),
-}
-
-#[repr(C)]
-pub struct CFRunLoopSourceContext1 {
- pub version: CFIndex,
- pub info: *mut c_void,
- pub retain: extern "C" fn (info: *const c_void) -> *const c_void,
- pub release: extern "C" fn (info: *const c_void),
- pub copyDescription: extern "C" fn (info: *const c_void) -> CFStringRef,
- pub equal: extern "C" fn (info1: *const c_void, info2: *const c_void) -> Boolean,
- pub hash: extern "C" fn (info: *const c_void) -> CFHashCode,
- // note that the following two fields are platform dependent in the C header, the ones here are for OS X
- pub getPort: extern "C" fn (info: *mut c_void) -> mach_port_t,
- pub perform: extern "C" fn (msg: *mut c_void, size: CFIndex, allocator: CFAllocatorRef, info: *mut c_void) -> *mut c_void,
-}
-
-#[repr(C)]
-pub struct CFRunLoopObserverContext {
- pub version: CFIndex,
- pub info: *mut c_void,
- pub retain: extern "C" fn (info: *const c_void) -> *const c_void,
- pub release: extern "C" fn (info: *const c_void),
- pub copyDescription: extern "C" fn (info: *const c_void) -> CFStringRef,
-}
-
-pub type CFRunLoopObserverCallBack = extern "C" fn (observer: CFRunLoopObserverRef, activity: CFRunLoopActivity, info: *mut c_void);
-
-#[repr(C)]
-pub struct CFRunLoopTimerContext {
- pub version: CFIndex,
- pub info: *mut c_void,
- pub retain: extern "C" fn (info: *const c_void) -> *const c_void,
- pub release: extern "C" fn (info: *const c_void),
- pub copyDescription: extern "C" fn (info: *const c_void) -> CFStringRef,
-}
-
-pub type CFRunLoopTimerCallBack = extern "C" fn (timer: CFRunLoopTimerRef, info: *mut c_void);
-
-#[repr(C)]
-pub struct __CFRunLoopTimer;
-
-pub type CFRunLoopTimerRef = *mut __CFRunLoopTimer;
-
-extern {
- /*
- * CFRunLoop.h
- */
- pub static kCFRunLoopDefaultMode: CFStringRef;
- pub static kCFRunLoopCommonModes: CFStringRef;
- pub fn CFRunLoopGetTypeID() -> CFTypeID;
- pub fn CFRunLoopGetCurrent() -> CFRunLoopRef;
- pub fn CFRunLoopGetMain() -> CFRunLoopRef;
- pub fn CFRunLoopCopyCurrentMode(rl: CFRunLoopRef) -> CFStringRef;
- pub fn CFRunLoopCopyAllModes(rl: CFRunLoopRef) -> CFArrayRef;
- pub fn CFRunLoopAddCommonMode(rl: CFRunLoopRef, mode: CFStringRef);
- pub fn CFRunLoopGetNextTimerFireDate(rl: CFRunLoopRef, mode: CFStringRef) -> CFAbsoluteTime;
- pub fn CFRunLoopRun();
- pub fn CFRunLoopRunInMode(mode: CFStringRef, seconds: CFTimeInterval, returnAfterSourceHandled: Boolean) -> i32;
- pub fn CFRunLoopIsWaiting(rl: CFRunLoopRef) -> Boolean;
- pub fn CFRunLoopWakeUp(rl: CFRunLoopRef);
- pub fn CFRunLoopStop(rl: CFRunLoopRef);
- // fn CFRunLoopPerformBlock(rl: CFRunLoopRef, mode: CFTypeRef, block: void (^)(void));
- pub fn CFRunLoopContainsSource(rl: CFRunLoopRef, source: CFRunLoopSourceRef, mode: CFStringRef) -> Boolean;
- pub fn CFRunLoopAddSource(rl: CFRunLoopRef, source: CFRunLoopSourceRef, mode: CFStringRef);
- pub fn CFRunLoopRemoveSource(rl: CFRunLoopRef, source: CFRunLoopSourceRef, mode: CFStringRef);
- pub fn CFRunLoopContainsObserver(rl: CFRunLoopRef, observer: CFRunLoopObserverRef, mode: CFStringRef) -> Boolean;
- pub fn CFRunLoopAddObserver(rl: CFRunLoopRef, observer: CFRunLoopObserverRef, mode: CFStringRef);
- pub fn CFRunLoopRemoveObserver(rl: CFRunLoopRef, observer: CFRunLoopObserverRef, mode: CFStringRef);
- pub fn CFRunLoopContainsTimer(rl: CFRunLoopRef, timer: CFRunLoopTimerRef, mode: CFStringRef) -> Boolean;
- pub fn CFRunLoopAddTimer(rl: CFRunLoopRef, timer: CFRunLoopTimerRef, mode: CFStringRef);
- pub fn CFRunLoopRemoveTimer(rl: CFRunLoopRef, timer: CFRunLoopTimerRef, mode: CFStringRef);
-
- pub fn CFRunLoopSourceGetTypeID() -> CFTypeID;
- pub fn CFRunLoopSourceCreate(allocator: CFAllocatorRef, order: CFIndex, context: *mut CFRunLoopSourceContext) -> CFRunLoopSourceRef;
- pub fn CFRunLoopSourceGetOrder(source: CFRunLoopSourceRef) -> CFIndex;
- pub fn CFRunLoopSourceInvalidate(source: CFRunLoopSourceRef);
- pub fn CFRunLoopSourceIsValid(source: CFRunLoopSourceRef) -> Boolean;
- pub fn CFRunLoopSourceGetContext(source: CFRunLoopSourceRef, context: *mut CFRunLoopSourceContext);
- pub fn CFRunLoopSourceSignal(source: CFRunLoopSourceRef);
-
- pub fn CFRunLoopObserverGetTypeID() -> CFTypeID;
- pub fn CFRunLoopObserverCreate(allocator: CFAllocatorRef, activities: CFOptionFlags, repeats: Boolean, order: CFIndex, callout: CFRunLoopObserverCallBack, context: *mut CFRunLoopObserverContext) -> CFRunLoopObserverRef;
- // fn CFRunLoopObserverCreateWithHandler(allocator: CFAllocatorRef, activities: CFOptionFlags, repeats: Boolean, order: CFIndex, block: void (^) (CFRunLoopObserverRef observer, CFRunLoopActivity activity)) -> CFRunLoopObserverRef;
- pub fn CFRunLoopObserverGetActivities(observer: CFRunLoopObserverRef) -> CFOptionFlags;
- pub fn CFRunLoopObserverDoesRepeat(observer: CFRunLoopObserverRef) -> Boolean;
- pub fn CFRunLoopObserverGetOrder(observer: CFRunLoopObserverRef) -> CFIndex;
- pub fn CFRunLoopObserverInvalidate(observer: CFRunLoopObserverRef);
- pub fn CFRunLoopObserverIsValid(observer: CFRunLoopObserverRef) -> Boolean;
- pub fn CFRunLoopObserverGetContext(observer: CFRunLoopObserverRef, context: *mut CFRunLoopObserverContext);
-
- pub fn CFRunLoopTimerGetTypeID() -> CFTypeID;
- pub fn CFRunLoopTimerCreate(allocator: CFAllocatorRef, fireDate: CFAbsoluteTime, interval: CFTimeInterval, flags: CFOptionFlags, order: CFIndex, callout: CFRunLoopTimerCallBack, context: *mut CFRunLoopTimerContext) -> CFRunLoopTimerRef;
- // fn CFRunLoopTimerCreateWithHandler(allocator: CFAllocatorRef, fireDate: CFAbsoluteTime, interval: CFTimeInterval, flags: CFOptionFlags, order: CFIndex, block: void (^) (CFRunLoopTimerRef timer)) -> CFRunLoopTimerRef;
- pub fn CFRunLoopTimerGetNextFireDate(timer: CFRunLoopTimerRef) -> CFAbsoluteTime;
- pub fn CFRunLoopTimerSetNextFireDate(timer: CFRunLoopTimerRef, fireDate: CFAbsoluteTime);
- pub fn CFRunLoopTimerGetInterval(timer: CFRunLoopTimerRef) -> CFTimeInterval;
- pub fn CFRunLoopTimerDoesRepeat(timer: CFRunLoopTimerRef) -> Boolean;
- pub fn CFRunLoopTimerGetOrder(timer: CFRunLoopTimerRef) -> CFIndex;
- pub fn CFRunLoopTimerInvalidate(timer: CFRunLoopTimerRef);
- pub fn CFRunLoopTimerIsValid(timer: CFRunLoopTimerRef) -> Boolean;
- pub fn CFRunLoopTimerGetContext(timer: CFRunLoopTimerRef, context: *mut CFRunLoopTimerContext);
- pub fn CFRunLoopTimerGetTolerance(timer: CFRunLoopTimerRef) -> CFTimeInterval;
- pub fn CFRunLoopTimerSetTolerance(timer: CFRunLoopTimerRef, tolerance: CFTimeInterval);
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/set.rs
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use libc::c_void;
-
-use base::{CFAllocatorRef, CFIndex, CFTypeID};
-
-pub type CFSetApplierFunction = extern "C" fn (value: *const c_void,
- context: *const c_void);
-pub type CFSetRetainCallBack = *const u8;
-pub type CFSetReleaseCallBack = *const u8;
-pub type CFSetCopyDescriptionCallBack = *const u8;
-pub type CFSetEqualCallBack = *const u8;
-pub type CFSetHashCallBack = *const u8;
-
-#[repr(C)]
-#[derive(Clone, Copy)]
-pub struct CFSetCallBacks {
- pub version: CFIndex,
- pub retain: CFSetRetainCallBack,
- pub release: CFSetReleaseCallBack,
- pub copyDescription: CFSetCopyDescriptionCallBack,
- pub equal: CFSetEqualCallBack,
- pub hash: CFSetHashCallBack,
-}
-
-#[repr(C)]
-pub struct __CFSet(c_void);
-
-pub type CFSetRef = *const __CFSet;
-
-extern {
- /*
- * CFSet.h
- */
-
- pub static kCFTypeSetCallBacks: CFSetCallBacks;
-
- /* Creating Sets */
- pub fn CFSetCreate(allocator: CFAllocatorRef, values: *const *const c_void, numValues: CFIndex,
- callBacks: *const CFSetCallBacks) -> CFSetRef;
-
- /* Applying a Function to Set Members */
- pub fn CFSetApplyFunction(theSet: CFSetRef,
- applier: CFSetApplierFunction,
- context: *const c_void);
-
- pub fn CFSetGetCount(theSet: CFSetRef) -> CFIndex;
-
- pub fn CFSetGetTypeID() -> CFTypeID;
-}
-
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/string.rs
+++ /dev/null
@@ -1,319 +0,0 @@
-// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use libc::{c_char, c_ushort, c_void};
-
-use base::{Boolean, CFOptionFlags, CFIndex, CFAllocatorRef, CFRange, CFTypeID};
-
-pub type UniChar = c_ushort;
-
-// CFString.h
-
-pub type CFStringCompareFlags = CFOptionFlags;
-//static kCFCompareCaseInsensitive: CFStringCompareFlags = 1;
-//static kCFCompareBackwards: CFStringCompareFlags = 4;
-//static kCFCompareAnchored: CFStringCompareFlags = 8;
-//static kCFCompareNonliteral: CFStringCompareFlags = 16;
-//static kCFCompareLocalized: CFStringCompareFlags = 32;
-//static kCFCompareNumerically: CFStringCompareFlags = 64;
-//static kCFCompareDiacriticInsensitive: CFStringCompareFlags = 128;
-//static kCFCompareWidthInsensitive: CFStringCompareFlags = 256;
-//static kCFCompareForcedOrdering: CFStringCompareFlags = 512;
-
-pub type CFStringEncoding = u32;
-
-// OS X built-in encodings.
-
-//static kCFStringEncodingMacRoman: CFStringEncoding = 0;
-//static kCFStringEncodingWindowsLatin1: CFStringEncoding = 0x0500;
-//static kCFStringEncodingISOLatin1: CFStringEncoding = 0x0201;
-//static kCFStringEncodingNextStepLatin: CFStringEncoding = 0x0B01;
-//static kCFStringEncodingASCII: CFStringEncoding = 0x0600;
-//static kCFStringEncodingUnicode: CFStringEncoding = 0x0100;
-pub static kCFStringEncodingUTF8: CFStringEncoding = 0x08000100;
-//static kCFStringEncodingNonLossyASCII: CFStringEncoding = 0x0BFF;
-
-//static kCFStringEncodingUTF16: CFStringEncoding = 0x0100;
-//static kCFStringEncodingUTF16BE: CFStringEncoding = 0x10000100;
-//static kCFStringEncodingUTF16LE: CFStringEncoding = 0x14000100;
-//static kCFStringEncodingUTF32: CFStringEncoding = 0x0c000100;
-//static kCFStringEncodingUTF32BE: CFStringEncoding = 0x18000100;
-//static kCFStringEncodingUTF32LE: CFStringEncoding = 0x1c000100;
-
-
-// CFStringEncodingExt.h
-
-pub type CFStringEncodings = CFIndex;
-
-// External encodings, except those defined above.
-// Defined above: kCFStringEncodingMacRoman = 0
-//static kCFStringEncodingMacJapanese: CFStringEncoding = 1;
-//static kCFStringEncodingMacChineseTrad: CFStringEncoding = 2;
-//static kCFStringEncodingMacKorean: CFStringEncoding = 3;
-//static kCFStringEncodingMacArabic: CFStringEncoding = 4;
-//static kCFStringEncodingMacHebrew: CFStringEncoding = 5;
-//static kCFStringEncodingMacGreek: CFStringEncoding = 6;
-//static kCFStringEncodingMacCyrillic: CFStringEncoding = 7;
-//static kCFStringEncodingMacDevanagari: CFStringEncoding = 9;
-//static kCFStringEncodingMacGurmukhi: CFStringEncoding = 10;
-//static kCFStringEncodingMacGujarati: CFStringEncoding = 11;
-//static kCFStringEncodingMacOriya: CFStringEncoding = 12;
-//static kCFStringEncodingMacBengali: CFStringEncoding = 13;
-//static kCFStringEncodingMacTamil: CFStringEncoding = 14;
-//static kCFStringEncodingMacTelugu: CFStringEncoding = 15;
-//static kCFStringEncodingMacKannada: CFStringEncoding = 16;
-//static kCFStringEncodingMacMalayalam: CFStringEncoding = 17;
-//static kCFStringEncodingMacSinhalese: CFStringEncoding = 18;
-//static kCFStringEncodingMacBurmese: CFStringEncoding = 19;
-//static kCFStringEncodingMacKhmer: CFStringEncoding = 20;
-//static kCFStringEncodingMacThai: CFStringEncoding = 21;
-//static kCFStringEncodingMacLaotian: CFStringEncoding = 22;
-//static kCFStringEncodingMacGeorgian: CFStringEncoding = 23;
-//static kCFStringEncodingMacArmenian: CFStringEncoding = 24;
-//static kCFStringEncodingMacChineseSimp: CFStringEncoding = 25;
-//static kCFStringEncodingMacTibetan: CFStringEncoding = 26;
-//static kCFStringEncodingMacMongolian: CFStringEncoding = 27;
-//static kCFStringEncodingMacEthiopic: CFStringEncoding = 28;
-//static kCFStringEncodingMacCentralEurRoman: CFStringEncoding = 29;
-//static kCFStringEncodingMacVietnamese: CFStringEncoding = 30;
-//static kCFStringEncodingMacExtArabic: CFStringEncoding = 31;
-//static kCFStringEncodingMacSymbol: CFStringEncoding = 33;
-//static kCFStringEncodingMacDingbats: CFStringEncoding = 34;
-//static kCFStringEncodingMacTurkish: CFStringEncoding = 35;
-//static kCFStringEncodingMacCroatian: CFStringEncoding = 36;
-//static kCFStringEncodingMacIcelandic: CFStringEncoding = 37;
-//static kCFStringEncodingMacRomanian: CFStringEncoding = 38;
-//static kCFStringEncodingMacCeltic: CFStringEncoding = 39;
-//static kCFStringEncodingMacGaelic: CFStringEncoding = 40;
-//static kCFStringEncodingMacFarsi: CFStringEncoding = 0x8C;
-//static kCFStringEncodingMacUkrainian: CFStringEncoding = 0x98;
-//static kCFStringEncodingMacInuit: CFStringEncoding = 0xEC;
-//static kCFStringEncodingMacVT100: CFStringEncoding = 0xFC;
-//static kCFStringEncodingMacHFS: CFStringEncoding = 0xFF;
-// Defined above: kCFStringEncodingISOLatin1 = 0x0201
-//static kCFStringEncodingISOLatin2: CFStringEncoding = 0x0202;
-//static kCFStringEncodingISOLatin3: CFStringEncoding = 0x0203;
-//static kCFStringEncodingISOLatin4: CFStringEncoding = 0x0204;
-//static kCFStringEncodingISOLatinCyrillic: CFStringEncoding = 0x0205;
-//static kCFStringEncodingISOLatinArabic: CFStringEncoding = 0x0206;
-//static kCFStringEncodingISOLatinGreek: CFStringEncoding = 0x0207;
-//static kCFStringEncodingISOLatinHebrew: CFStringEncoding = 0x0208;
-//static kCFStringEncodingISOLatin5: CFStringEncoding = 0x0209;
-//static kCFStringEncodingISOLatin6: CFStringEncoding = 0x020A;
-//static kCFStringEncodingISOLatinThai: CFStringEncoding = 0x020B;
-//static kCFStringEncodingISOLatin7: CFStringEncoding = 0x020D;
-//static kCFStringEncodingISOLatin8: CFStringEncoding = 0x020E;
-//static kCFStringEncodingISOLatin9: CFStringEncoding = 0x020F;
-//static kCFStringEncodingISOLatin10: CFStringEncoding = 0x0210;
-//static kCFStringEncodingDOSLatinUS: CFStringEncoding = 0x0400;
-//static kCFStringEncodingDOSGreek: CFStringEncoding = 0x0405;
-//static kCFStringEncodingDOSBalticRim: CFStringEncoding = 0x0406;
-//static kCFStringEncodingDOSLatin1: CFStringEncoding = 0x0410;
-//static kCFStringEncodingDOSGreek1: CFStringEncoding = 0x0411;
-//static kCFStringEncodingDOSLatin2: CFStringEncoding = 0x0412;
-//static kCFStringEncodingDOSCyrillic: CFStringEncoding = 0x0413;
-//static kCFStringEncodingDOSTurkish: CFStringEncoding = 0x0414;
-//static kCFStringEncodingDOSPortuguese: CFStringEncoding = 0x0415;
-//static kCFStringEncodingDOSIcelandic: CFStringEncoding = 0x0416;
-//static kCFStringEncodingDOSHebrew: CFStringEncoding = 0x0417;
-//static kCFStringEncodingDOSCanadianFrench: CFStringEncoding = 0x0418;
-//static kCFStringEncodingDOSArabic: CFStringEncoding = 0x0419;
-//static kCFStringEncodingDOSNordic: CFStringEncoding = 0x041A;
-//static kCFStringEncodingDOSRussian: CFStringEncoding = 0x041B;
-//static kCFStringEncodingDOSGreek2: CFStringEncoding = 0x041C;
-//static kCFStringEncodingDOSThai: CFStringEncoding = 0x041D;
-//static kCFStringEncodingDOSJapanese: CFStringEncoding = 0x0420;
-//static kCFStringEncodingDOSChineseSimplif: CFStringEncoding = 0x0421;
-//static kCFStringEncodingDOSKorean: CFStringEncoding = 0x0422;
-//static kCFStringEncodingDOSChineseTrad: CFStringEncoding = 0x0423;
-// Defined above: kCFStringEncodingWindowsLatin1 = 0x0500
-//static kCFStringEncodingWindowsLatin2: CFStringEncoding = 0x0501;
-//static kCFStringEncodingWindowsCyrillic: CFStringEncoding = 0x0502;
-//static kCFStringEncodingWindowsGreek: CFStringEncoding = 0x0503;
-//static kCFStringEncodingWindowsLatin5: CFStringEncoding = 0x0504;
-//static kCFStringEncodingWindowsHebrew: CFStringEncoding = 0x0505;
-//static kCFStringEncodingWindowsArabic: CFStringEncoding = 0x0506;
-//static kCFStringEncodingWindowsBalticRim: CFStringEncoding = 0x0507;
-//static kCFStringEncodingWindowsVietnamese: CFStringEncoding = 0x0508;
-//static kCFStringEncodingWindowsKoreanJohab: CFStringEncoding = 0x0510;
-// Defined above: kCFStringEncodingASCII = 0x0600
-//static kCFStringEncodingANSEL: CFStringEncoding = 0x0601;
-//static kCFStringEncodingJIS_X0201_76: CFStringEncoding = 0x0620;
-//static kCFStringEncodingJIS_X0208_83: CFStringEncoding = 0x0621;
-//static kCFStringEncodingJIS_X0208_90: CFStringEncoding = 0x0622;
-//static kCFStringEncodingJIS_X0212_90: CFStringEncoding = 0x0623;
-//static kCFStringEncodingJIS_C6226_78: CFStringEncoding = 0x0624;
-//static kCFStringEncodingShiftJIS_X0213: CFStringEncoding = 0x0628;
-//static kCFStringEncodingShiftJIS_X0213_MenKuTen: CFStringEncoding = 0x0629;
-//static kCFStringEncodingGB_2312_80: CFStringEncoding = 0x0630;
-//static kCFStringEncodingGBK_95: CFStringEncoding = 0x0631;
-//static kCFStringEncodingGB_18030_2000: CFStringEncoding = 0x0632;
-//static kCFStringEncodingKSC_5601_87: CFStringEncoding = 0x0640;
-//static kCFStringEncodingKSC_5601_92_Johab: CFStringEncoding = 0x0641;
-//static kCFStringEncodingCNS_11643_92_P1: CFStringEncoding = 0x0651;
-//static kCFStringEncodingCNS_11643_92_P2: CFStringEncoding = 0x0652;
-//static kCFStringEncodingCNS_11643_92_P3: CFStringEncoding = 0x0653;
-//static kCFStringEncodingISO_2022_JP: CFStringEncoding = 0x0820;
-//static kCFStringEncodingISO_2022_JP_2: CFStringEncoding = 0x0821;
-//static kCFStringEncodingISO_2022_JP_1: CFStringEncoding = 0x0822;
-//static kCFStringEncodingISO_2022_JP_3: CFStringEncoding = 0x0823;
-//static kCFStringEncodingISO_2022_CN: CFStringEncoding = 0x0830;
-//static kCFStringEncodingISO_2022_CN_EXT: CFStringEncoding = 0x0831;
-//static kCFStringEncodingISO_2022_KR: CFStringEncoding = 0x0840;
-//static kCFStringEncodingEUC_JP: CFStringEncoding = 0x0920;
-//static kCFStringEncodingEUC_CN: CFStringEncoding = 0x0930;
-//static kCFStringEncodingEUC_TW: CFStringEncoding = 0x0931;
-//static kCFStringEncodingEUC_KR: CFStringEncoding = 0x0940;
-//static kCFStringEncodingShiftJIS: CFStringEncoding = 0x0A01;
-//static kCFStringEncodingKOI8_R: CFStringEncoding = 0x0A02;
-//static kCFStringEncodingBig5: CFStringEncoding = 0x0A03;
-//static kCFStringEncodingMacRomanLatin1: CFStringEncoding = 0x0A04;
-//static kCFStringEncodingHZ_GB_2312: CFStringEncoding = 0x0A05;
-//static kCFStringEncodingBig5_HKSCS_1999: CFStringEncoding = 0x0A06;
-//static kCFStringEncodingVISCII: CFStringEncoding = 0x0A07;
-//static kCFStringEncodingKOI8_U: CFStringEncoding = 0x0A08;
-//static kCFStringEncodingBig5_E: CFStringEncoding = 0x0A09;
-// Defined above: kCFStringEncodingNextStepLatin = 0x0B01
-//static kCFStringEncodingNextStepJapanese: CFStringEncoding = 0x0B02;
-//static kCFStringEncodingEBCDIC_US: CFStringEncoding = 0x0C01;
-//static kCFStringEncodingEBCDIC_CP037: CFStringEncoding = 0x0C02;
-//static kCFStringEncodingUTF7: CFStringEncoding = 0x04000100;
-//static kCFStringEncodingUTF7_IMAP: CFStringEncoding = 0x0A10;
-//static kCFStringEncodingShiftJIS_X0213_00: CFStringEncoding = 0x0628; /* Deprecated */
-
-#[repr(C)]
-pub struct __CFString(c_void);
-
-pub type CFStringRef = *const __CFString;
-
-extern {
- /*
- * CFString.h
- */
-
- // N.B. organized according to "Functions by task" in docs
-
- /* Creating a CFString */
- //fn CFSTR
- //fn CFStringCreateArrayBySeparatingStrings
- //fn CFStringCreateByCombiningStrings
- //fn CFStringCreateCopy
- //fn CFStringCreateFromExternalRepresentation
- pub fn CFStringCreateWithBytes(alloc: CFAllocatorRef,
- bytes: *const u8,
- numBytes: CFIndex,
- encoding: CFStringEncoding,
- isExternalRepresentation: Boolean)
- -> CFStringRef;
- pub fn CFStringCreateWithBytesNoCopy(alloc: CFAllocatorRef,
- bytes: *const u8,
- numBytes: CFIndex,
- encoding: CFStringEncoding,
- isExternalRepresentation: Boolean,
- contentsDeallocator: CFAllocatorRef)
- -> CFStringRef;
- //fn CFStringCreateWithCharacters
- //fn CFStringCreateWithCharactersNoCopy
- pub fn CFStringCreateWithCString(alloc: CFAllocatorRef,
- cStr: *const c_char,
- encoding: CFStringEncoding)
- -> CFStringRef;
- //fn CFStringCreateWithCStringNoCopy
- //fn CFStringCreateWithFormat
- //fn CFStringCreateWithFormatAndArguments
- //fn CFStringCreateWithPascalString
- //fn CFStringCreateWithPascalStringNoCopy
- //fn CFStringCreateWithSubstring
-
- /* Searching Strings */
- //fn CFStringCreateArrayWithFindResults
- //fn CFStringFind
- //fn CFStringFindCharacterFromSet
- //fn CFStringFindWithOptions
- //fn CFStringFindWithOptionsAndLocale
- //fn CFStringGetLineBounds
-
- /* Comparing Strings */
- //fn CFStringCompare
- //fn CFStringCompareWithOptions
- //fn CFStringCompareWithOptionsAndLocale
- //fn CFStringHasPrefix
- //fn CFStringHasSuffix
-
- /* Accessing Characters */
- //fn CFStringCreateExternalRepresentation
- pub fn CFStringGetBytes(theString: CFStringRef,
- range: CFRange,
- encoding: CFStringEncoding,
- lossByte: u8,
- isExternalRepresentation: Boolean,
- buffer: *mut u8,
- maxBufLen: CFIndex,
- usedBufLen: *mut CFIndex)
- -> CFIndex;
- //fn CFStringGetCharacterAtIndex
- //fn CFStringGetCharacters
- //fn CFStringGetCharactersPtr
- //fn CFStringGetCharacterFromInlineBuffer
- pub fn CFStringGetCString(theString: CFStringRef,
- buffer: *mut c_char,
- bufferSize: CFIndex,
- encoding: CFStringEncoding)
- -> Boolean;
- pub fn CFStringGetCStringPtr(theString: CFStringRef,
- encoding: CFStringEncoding)
- -> *const c_char;
- pub fn CFStringGetLength(theString: CFStringRef) -> CFIndex;
- //fn CFStringGetPascalString
- //fn CFStringGetPascalStringPtr
- //fn CFStringGetRangeOfComposedCharactersAtIndex
- //fn CFStringInitInlineBuffer
-
- /* Working With Hyphenation */
- //fn CFStringGetHyphenationLocationBeforeIndex
- //fn CFStringIsHyphenationAvailableForLocale
-
- /* Working With Encodings */
- //fn CFStringConvertEncodingToIANACharSetName
- //fn CFStringConvertEncodingToNSStringEncoding
- //fn CFStringConvertEncodingToWindowsCodepage
- //fn CFStringConvertIANACharSetNameToEncoding
- //fn CFStringConvertNSStringEncodingToEncoding
- //fn CFStringConvertWindowsCodepageToEncoding
- //fn CFStringGetFastestEncoding
- //fn CFStringGetListOfAvailableEncodings
- //fn CFStringGetMaximumSizeForEncoding
- //fn CFStringGetMostCompatibleMacStringEncoding
- //fn CFStringGetNameOfEncoding
- //fn CFStringGetSmallestEncoding
- //fn CFStringGetSystemEncoding
- //fn CFStringIsEncodingAvailable
-
- /* Getting Numeric Values */
- //fn CFStringGetDoubleValue
- //fn CFStringGetIntValue
-
- /* Getting String Properties */
- //fn CFShowStr
- pub fn CFStringGetTypeID() -> CFTypeID;
-
- /* String File System Representations */
- //fn CFStringCreateWithFileSystemRepresentation
- //fn CFStringGetFileSystemRepresentation
- //fn CFStringGetMaximumSizeOfFileSystemRepresentation
-
- /* Getting Paragraph Bounds */
- //fn CFStringGetParagraphBounds
-
- /* Managing Surrogates */
- //fn CFStringGetLongCharacterForSurrogatePair
- //fn CFStringGetSurrogatePairForLongCharacter
- //fn CFStringIsSurrogateHighCharacter
- //fn CFStringIsSurrogateLowCharacter
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/timezone.rs
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use libc::c_void;
-
-use base::{CFAllocatorRef, CFTypeID};
-use date::{CFTimeInterval, CFAbsoluteTime};
-
-#[repr(C)]
-pub struct __CFTimeZone(c_void);
-
-pub type CFTimeZoneRef = *const __CFTimeZone;
-
-extern {
- pub fn CFTimeZoneCopySystem() -> CFTimeZoneRef;
- pub fn CFTimeZoneCopyDefault() -> CFTimeZoneRef;
- pub fn CFTimeZoneCreateWithTimeIntervalFromGMT(allocator: CFAllocatorRef, interval: CFTimeInterval) -> CFTimeZoneRef;
- pub fn CFTimeZoneGetSecondsFromGMT(tz: CFTimeZoneRef, time: CFAbsoluteTime) -> CFTimeInterval;
-
- pub fn CFTimeZoneGetTypeID() -> CFTypeID;
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/url.rs
+++ /dev/null
@@ -1,163 +0,0 @@
-// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-use libc::c_void;
-
-use base::{CFOptionFlags, CFIndex, CFAllocatorRef, Boolean, CFTypeID, CFTypeRef, SInt32};
-use string::{CFStringRef, CFStringEncoding};
-use error::CFErrorRef;
-
-#[repr(C)]
-pub struct __CFURL(c_void);
-
-pub type CFURLRef = *const __CFURL;
-
-pub type CFURLBookmarkCreationOptions = CFOptionFlags;
-
-pub type CFURLPathStyle = CFIndex;
-
-/* typedef CF_ENUM(CFIndex, CFURLPathStyle) */
-pub const kCFURLPOSIXPathStyle: CFURLPathStyle = 0;
-pub const kCFURLHFSPathStyle: CFURLPathStyle = 1;
-pub const kCFURLWindowsPathStyle: CFURLPathStyle = 2;
-
-// static kCFURLBookmarkCreationPreferFileIDResolutionMask: CFURLBookmarkCreationOptions =
-// (1 << 8) as u32;
-// static kCFURLBookmarkCreationMinimalBookmarkMask: CFURLBookmarkCreationOptions =
-// (1 << 9) as u32;
-// static kCFURLBookmarkCreationSuitableForBookmarkFile: CFURLBookmarkCreationOptions =
-// (1 << 10) as u32;
-// static kCFURLBookmarkCreationWithSecurityScope: CFURLBookmarkCreationOptions =
-// (1 << 11) as u32;
-// static kCFURLBookmarkCreationSecurityScopeAllowOnlyReadAccess: CFURLBookmarkCreationOptions =
-// (1 << 12) as u32;
-
-// TODO: there are a lot of missing keys and constants. Add if you are bored or need them.
-
-extern {
- /*
- * CFURL.h
- */
-
- /* Common File System Resource Keys */
- pub static kCFURLAttributeModificationDateKey: CFStringRef;
- pub static kCFURLContentAccessDateKey: CFStringRef;
- pub static kCFURLContentModificationDateKey: CFStringRef;
- pub static kCFURLCreationDateKey: CFStringRef;
- pub static kCFURLFileResourceIdentifierKey: CFStringRef;
- pub static kCFURLFileSecurityKey: CFStringRef;
- pub static kCFURLHasHiddenExtensionKey: CFStringRef;
- pub static kCFURLIsDirectoryKey: CFStringRef;
- pub static kCFURLIsExecutableKey: CFStringRef;
- pub static kCFURLIsHiddenKey: CFStringRef;
- pub static kCFURLIsPackageKey: CFStringRef;
- pub static kCFURLIsReadableKey: CFStringRef;
- pub static kCFURLIsRegularFileKey: CFStringRef;
- pub static kCFURLIsSymbolicLinkKey: CFStringRef;
- pub static kCFURLIsSystemImmutableKey: CFStringRef;
- pub static kCFURLIsUserImmutableKey: CFStringRef;
- pub static kCFURLIsVolumeKey: CFStringRef;
- pub static kCFURLIsWritableKey: CFStringRef;
- pub static kCFURLLabelNumberKey: CFStringRef;
- pub static kCFURLLinkCountKey: CFStringRef;
- pub static kCFURLLocalizedLabelKey: CFStringRef;
- pub static kCFURLLocalizedNameKey: CFStringRef;
- pub static kCFURLLocalizedTypeDescriptionKey: CFStringRef;
- pub static kCFURLNameKey: CFStringRef;
- pub static kCFURLParentDirectoryURLKey: CFStringRef;
- pub static kCFURLPreferredIOBlockSizeKey: CFStringRef;
- pub static kCFURLTypeIdentifierKey: CFStringRef;
- pub static kCFURLVolumeIdentifierKey: CFStringRef;
- pub static kCFURLVolumeURLKey: CFStringRef;
-
- #[cfg(feature="mac_os_10_8_features")]
- #[cfg_attr(feature = "mac_os_10_7_support", linkage = "extern_weak")]
- pub static kCFURLIsExcludedFromBackupKey: CFStringRef;
- pub static kCFURLFileResourceTypeKey: CFStringRef;
-
- /* Creating a CFURL */
- pub fn CFURLCopyAbsoluteURL(anURL: CFURLRef) -> CFURLRef;
- //fn CFURLCreateAbsoluteURLWithBytes
- //fn CFURLCreateByResolvingBookmarkData
- //fn CFURLCreateCopyAppendingPathComponent
- //fn CFURLCreateCopyAppendingPathExtension
- //fn CFURLCreateCopyDeletingLastPathComponent
- //fn CFURLCreateCopyDeletingPathExtension
- pub fn CFURLCreateFilePathURL(allocator: CFAllocatorRef, url: CFURLRef, error: *mut CFErrorRef) -> CFURLRef;
- //fn CFURLCreateFileReferenceURL
- pub fn CFURLCreateFromFileSystemRepresentation(allocator: CFAllocatorRef, buffer: *const u8, bufLen: CFIndex, isDirectory: Boolean) -> CFURLRef;
- //fn CFURLCreateFromFileSystemRepresentationRelativeToBase
- //fn CFURLCreateFromFSRef
- pub fn CFURLCreateWithBytes(allocator: CFAllocatorRef, URLBytes: *const u8, length: CFIndex, encoding: CFStringEncoding, baseURL: CFURLRef) -> CFURLRef;
- pub fn CFURLCreateWithFileSystemPath(allocator: CFAllocatorRef, filePath: CFStringRef, pathStyle: CFURLPathStyle, isDirectory: Boolean) -> CFURLRef;
- pub fn CFURLCreateWithFileSystemPathRelativeToBase(allocator: CFAllocatorRef, filePath: CFStringRef, pathStyle: CFURLPathStyle, isDirectory: Boolean, baseURL: CFURLRef) -> CFURLRef;
- //fn CFURLCreateWithString(allocator: CFAllocatorRef, urlString: CFStringRef,
- // baseURL: CFURLRef) -> CFURLRef;
-
- /* Accessing the Parts of a URL */
- pub fn CFURLCanBeDecomposed(anURL: CFURLRef) -> Boolean;
- pub fn CFURLCopyFileSystemPath(anURL: CFURLRef, pathStyle: CFURLPathStyle) -> CFStringRef;
- pub fn CFURLCopyFragment(anURL: CFURLRef, charactersToLeaveEscaped: CFStringRef) -> CFStringRef;
- pub fn CFURLCopyHostName(anURL: CFURLRef) -> CFStringRef;
- pub fn CFURLCopyLastPathComponent(anURL: CFURLRef) -> CFStringRef;
- pub fn CFURLCopyNetLocation(anURL: CFURLRef) -> CFStringRef;
- pub fn CFURLCopyParameterString(anURL: CFURLRef, charactersToLeaveEscaped: CFStringRef) -> CFStringRef;
- pub fn CFURLCopyPassword(anURL: CFURLRef) -> CFStringRef;
- pub fn CFURLCopyPath(anURL: CFURLRef) -> CFStringRef;
- pub fn CFURLCopyPathExtension(anURL: CFURLRef) -> CFStringRef;
- pub fn CFURLCopyQueryString(anURL: CFURLRef, charactersToLeaveEscaped: CFStringRef) -> CFStringRef;
- pub fn CFURLCopyResourceSpecifier(anURL: CFURLRef) -> CFStringRef;
- pub fn CFURLCopyScheme(anURL: CFURLRef) -> CFStringRef;
- pub fn CFURLCopyStrictPath(anURL: CFURLRef, isAbsolute: *mut Boolean) -> CFStringRef;
- pub fn CFURLCopyUserName(anURL: CFURLRef) -> CFStringRef;
- pub fn CFURLGetPortNumber(anURL: CFURLRef) -> SInt32;
- pub fn CFURLHasDirectoryPath(anURL: CFURLRef) -> Boolean;
-
- /* Converting URLs to Other Representations */
- //fn CFURLCreateData(allocator: CFAllocatorRef, url: CFURLRef,
- // encoding: CFStringEncoding, escapeWhitespace: bool) -> CFDataRef;
- //fn CFURLCreateStringByAddingPercentEscapes
- //fn CFURLCreateStringByReplacingPercentEscapes
- //fn CFURLCreateStringByReplacingPercentEscapesUsingEncoding
- pub fn CFURLGetFileSystemRepresentation(anURL: CFURLRef, resolveAgainstBase: Boolean, buffer: *mut u8, maxBufLen: CFIndex) -> Boolean;
-
- //fn CFURLGetFSRef
- pub fn CFURLGetString(anURL: CFURLRef) -> CFStringRef;
-
- /* Getting URL Properties */
- //fn CFURLGetBaseURL(anURL: CFURLRef) -> CFURLRef;
- pub fn CFURLGetBytes(anURL: CFURLRef, buffer: *mut u8, bufferLength: CFIndex) -> CFIndex;
- //fn CFURLGetByteRangeForComponent
- pub fn CFURLGetTypeID() -> CFTypeID;
- //fn CFURLResourceIsReachable
-
- /* Getting and Setting File System Resource Properties */
- pub fn CFURLClearResourcePropertyCache(url: CFURLRef);
- //fn CFURLClearResourcePropertyCacheForKey
- //fn CFURLCopyResourcePropertiesForKeys
- //fn CFURLCopyResourcePropertyForKey
- //fn CFURLCreateResourcePropertiesForKeysFromBookmarkData
- //fn CFURLCreateResourcePropertyForKeyFromBookmarkData
- //fn CFURLSetResourcePropertiesForKeys
- pub fn CFURLSetResourcePropertyForKey(url: CFURLRef, key: CFStringRef, value: CFTypeRef, error: *mut CFErrorRef) -> Boolean;
- //fn CFURLSetTemporaryResourcePropertyForKey
-
- /* Working with Bookmark Data */
- //fn CFURLCreateBookmarkData
- //fn CFURLCreateBookmarkDataFromAliasRecord
- //fn CFURLCreateBookmarkDataFromFile
- //fn CFURLWriteBookmarkDataToFile
- //fn CFURLStartAccessingSecurityScopedResource
- //fn CFURLStopAccessingSecurityScopedResource
-}
-
-#[test]
-#[cfg(feature="mac_os_10_8_features")]
-fn can_see_excluded_from_backup_key() {
- let _ = unsafe { kCFURLIsExcludedFromBackupKey };
-}
deleted file mode 100644
--- a/third_party/rust/core-foundation-sys-0.5.1/src/uuid.rs
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-use libc::c_void;
-
-use base::{CFAllocatorRef, CFTypeID};
-
-#[repr(C)]
-pub struct __CFUUID(c_void);
-
-pub type CFUUIDRef = *const __CFUUID;
-
-#[repr(C)]
-#[derive(Clone, Copy, Default)]
-pub struct CFUUIDBytes {
- pub byte0: u8,
- pub byte1: u8,
- pub byte2: u8,
- pub byte3: u8,
- pub byte4: u8,
- pub byte5: u8,
- pub byte6: u8,
- pub byte7: u8,
- pub byte8: u8,
- pub byte9: u8,
- pub byte10: u8,
- pub byte11: u8,
- pub byte12: u8,
- pub byte13: u8,
- pub byte14: u8,
- pub byte15: u8
-}
-
-extern {
- /*
- * CFUUID.h
- */
- pub fn CFUUIDCreate(allocator: CFAllocatorRef) -> CFUUIDRef;
- pub fn CFUUIDCreateFromUUIDBytes(allocator: CFAllocatorRef, bytes: CFUUIDBytes) -> CFUUIDRef;
- pub fn CFUUIDGetUUIDBytes(uuid: CFUUIDRef) -> CFUUIDBytes;
-
- pub fn CFUUIDGetTypeID() -> CFTypeID;
-}
--- a/third_party/rust/core-graphics/.cargo-checksum.json
+++ b/third_party/rust/core-graphics/.cargo-checksum.json
@@ -1,1 +1,1 @@
-{"files":{".travis.yml":"b71b9a6f84b9263b2b89be6ec90dff5920ee68cf9e5768d73ed71957de2d0670","COPYRIGHT":"ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a","Cargo.toml":"3ff1a11a530609452fd321f65e6d3eb0a504ea3dd1c9b9b575ead73dbfd32072","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","README.md":"4a45abeb1e684e30bb361dfa7db59189423348e18d310cbae694b7c8c57cd86a","src/base.rs":"10f3eeae06c6dd25cdf3e11b7e2fbbe5d003469ebb4aa1b069625a1637633879","src/color_space.rs":"bada04ad391869474428070ad9ae5dbb5e7f5e03646226fab0b03e8e84240bfa","src/context.rs":"601cb85abd122422abdbcbd8f6116ee4622009aee717cb478f6f0937d481b212","src/data_provider.rs":"78e9fc5c1c609bfb6a29136cd334575b77c6f4c994e444291dbccc52cfd35363","src/display.rs":"1c1a2fe5e52ba31437d5155adcc73f103a62bdaabca55ba290ec0b0b15cb9c7e","src/event.rs":"5f2a645cbd9582cc6861236a3696b9fa1655457bed884fdc218fc8b5b75921cb","src/event_source.rs":"d55a4f5b5e62789325028febc51bbf54c74b15ab1a4e70c6ad749a2f9753e081","src/font.rs":"5ddb75ccb23af98bfc82deefa3100288baf5ea0e4827242d878219d3251d6d55","src/geometry.rs":"b94e50a16b8540dc6f37bfe4b1549ac68974cd6ba6c0bbd9209559f8a46d86eb","src/image.rs":"fb77ae359b918cf3341662cb858cde6111eaa358f60fdd1ebbf264e023d25401","src/lib.rs":"19d5e558cec5596d546f1753529a8e3cf951993f4500ee12fad0d7eb2dc86bc8","src/path.rs":"d8dccd0bc2a1888a0a598fcca25067e932451e220dbec75999982cef9477d3ab","src/private.rs":"da3fd61338bab2d8e26aa5433b2e18ecd2a0a408c62e1ac2b33a0f87f2dad88a","src/sys.rs":"27e00f7ad7645af05014f35939128833456cac766a2978c5da295c3757708a86"},"package":"fb0ed45fdc32f9ab426238fba9407dfead7bacd7900c9b4dd3f396f46eafdae3"}
\ No newline at end of file
+{"files":{".travis.yml":"b71b9a6f84b9263b2b89be6ec90dff5920ee68cf9e5768d73ed71957de2d0670","COPYRIGHT":"ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a","Cargo.toml":"8858a9ce62839ea4f8addacfb0d228d8ae1f015a0c233d38afe68eb72763aa18","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","README.md":"4a45abeb1e684e30bb361dfa7db59189423348e18d310cbae694b7c8c57cd86a","src/base.rs":"10f3eeae06c6dd25cdf3e11b7e2fbbe5d003469ebb4aa1b069625a1637633879","src/color_space.rs":"bada04ad391869474428070ad9ae5dbb5e7f5e03646226fab0b03e8e84240bfa","src/context.rs":"601cb85abd122422abdbcbd8f6116ee4622009aee717cb478f6f0937d481b212","src/data_provider.rs":"78e9fc5c1c609bfb6a29136cd334575b77c6f4c994e444291dbccc52cfd35363","src/display.rs":"3ca38e1ff0200409c95941fcb64afa043310d1c0855c7614fd236c4f83e5a343","src/event.rs":"551a228faa5a938928ee6f7030a2bfc1e40574a93e80eccaea31e3c3ff348e15","src/event_source.rs":"d55a4f5b5e62789325028febc51bbf54c74b15ab1a4e70c6ad749a2f9753e081","src/font.rs":"63b7e50243a56254c800421df586abee59aead84f735f7df838ae04693aedf4b","src/geometry.rs":"b94e50a16b8540dc6f37bfe4b1549ac68974cd6ba6c0bbd9209559f8a46d86eb","src/image.rs":"fb77ae359b918cf3341662cb858cde6111eaa358f60fdd1ebbf264e023d25401","src/lib.rs":"19d5e558cec5596d546f1753529a8e3cf951993f4500ee12fad0d7eb2dc86bc8","src/path.rs":"d8dccd0bc2a1888a0a598fcca25067e932451e220dbec75999982cef9477d3ab","src/private.rs":"da3fd61338bab2d8e26aa5433b2e18ecd2a0a408c62e1ac2b33a0f87f2dad88a","src/sys.rs":"27e00f7ad7645af05014f35939128833456cac766a2978c5da295c3757708a86"},"package":"e54c4ab33705fa1fc8af375bb7929d68e1c1546c1ecef408966d8c3e49a1d84a"}
\ No newline at end of file
--- a/third_party/rust/core-graphics/Cargo.toml
+++ b/third_party/rust/core-graphics/Cargo.toml
@@ -7,27 +7,27 @@
#
# If you believe there's an error in this file please file an
# issue against the rust-lang/cargo repository. If you're
# editing this file be aware that the upstream Cargo.toml
# will likely look very different (and much more reasonable)
[package]
name = "core-graphics"
-version = "0.13.0"
+version = "0.14.0"
authors = ["The Servo Project Developers"]
description = "Bindings to Core Graphics for OS X"
homepage = "https://github.com/servo/core-graphics-rs"
license = "MIT / Apache-2.0"
-repository = "https://github.com/servo/core-graphics-rs"
+repository = "https://github.com/servo/core-foundation-rs"
[dependencies.bitflags]
version = "1.0"
[dependencies.core-foundation]
-version = "0.5"
+version = "0.6"
[dependencies.foreign-types]
version = "0.3.0"
[dependencies.libc]
version = "0.2"
[features]
--- a/third_party/rust/core-graphics/src/display.rs
+++ b/third_party/rust/core-graphics/src/display.rs
@@ -424,16 +424,22 @@ extern "C" {
pub fn CGDisplayUnitNumber(display: CGDirectDisplayID) -> libc::uint32_t;
pub fn CGDisplayUsesOpenGLAcceleration(display: CGDirectDisplayID) -> boolean_t;
pub fn CGDisplayVendorNumber(display: CGDirectDisplayID) -> libc::uint32_t;
pub fn CGGetActiveDisplayList(
max_displays: libc::uint32_t,
active_displays: *mut CGDirectDisplayID,
display_count: *mut libc::uint32_t,
) -> CGError;
+ pub fn CGGetDisplaysWithRect(
+ rect: CGRect,
+ max_displays: libc::uint32_t,
+ displays: *mut CGDirectDisplayID,
+ matching_display_count: *mut libc::uint32_t,
+ ) -> CGError;
pub fn CGDisplayModelNumber(display: CGDirectDisplayID) -> libc::uint32_t;
pub fn CGDisplayPixelsHigh(display: CGDirectDisplayID) -> libc::size_t;
pub fn CGDisplayPixelsWide(display: CGDirectDisplayID) -> libc::size_t;
pub fn CGDisplayBounds(display: CGDirectDisplayID) -> CGRect;
pub fn CGDisplayCreateImage(display: CGDirectDisplayID) -> ::sys::CGImageRef;
pub fn CGDisplayCopyDisplayMode(display: CGDirectDisplayID) -> ::sys::CGDisplayModeRef;
pub fn CGDisplayModeGetHeight(mode: ::sys::CGDisplayModeRef) -> libc::size_t;
--- a/third_party/rust/core-graphics/src/event.rs
+++ b/third_party/rust/core-graphics/src/event.rs
@@ -5,16 +5,17 @@ use geometry::CGPoint;
use event_source::CGEventSource;
use libc;
use foreign_types::ForeignType;
pub type CGEventField = libc::uint32_t;
pub type CGKeyCode = libc::uint16_t;
+pub type CGScrollEventUnit = libc::uint32_t;
/// Flags for events
///
/// [Ref](http://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-700/IOHIDSystem/IOKit/hidsystem/IOLLEvent.h)
bitflags! {
#[repr(C)]
pub struct CGEventFlags: u64 {
const CGEventFlagNull = 0;
@@ -89,16 +90,23 @@ impl KeyCode {
pub const END: CGKeyCode = 0x77;
pub const PAGE_DOWN: CGKeyCode = 0x79;
pub const LEFT_ARROW: CGKeyCode = 0x7B;
pub const RIGHT_ARROW: CGKeyCode = 0x7C;
pub const DOWN_ARROW: CGKeyCode = 0x7D;
pub const UP_ARROW: CGKeyCode = 0x7E;
}
+#[repr(C)]
+pub struct ScrollEventUnit {}
+impl ScrollEventUnit {
+ pub const PIXEL: CGScrollEventUnit = 0;
+ pub const LINE: CGScrollEventUnit = 1;
+}
+
/// Constants that specify the different types of input events.
///
/// [Ref](http://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-700/IOHIDSystem/IOKit/hidsystem/IOLLEvent.h)
#[repr(C)]
#[derive(Clone, Copy, Debug)]
pub enum CGEventType {
Null = 0,
@@ -430,16 +438,41 @@ impl CGEvent {
if !event_ref.is_null() {
Ok(Self::from_ptr(event_ref))
} else {
Err(())
}
}
}
+ pub fn new_scroll_event(
+ source: CGEventSource,
+ units: CGScrollEventUnit,
+ wheel_count: u32,
+ wheel1: i32,
+ wheel2: i32,
+ wheel3: i32,
+ ) -> Result<CGEvent, ()> {
+ unsafe {
+ let event_ref = CGEventCreateScrollWheelEvent2(
+ source.as_ptr(),
+ units,
+ wheel_count,
+ wheel1,
+ wheel2,
+ wheel3,
+ );
+ if !event_ref.is_null() {
+ Ok(Self::from_ptr(event_ref))
+ } else {
+ Err(())
+ }
+ }
+ }
+
pub fn post(&self, tap_location: CGEventTapLocation) {
unsafe {
CGEventPost(tap_location, self.as_ptr());
}
}
pub fn location(&self) -> CGPoint {
unsafe {
@@ -540,16 +573,31 @@ extern {
///
/// The current implementation of the event system supports a maximum of
/// thirty-two buttons. Mouse button 0 is the primary button on the mouse.
/// Mouse button 1 is the secondary mouse button (right). Mouse button 2 is
/// the center button, and the remaining buttons are in USB device order.
fn CGEventCreateMouseEvent(source: ::sys::CGEventSourceRef, mouseType: CGEventType,
mouseCursorPosition: CGPoint, mouseButton: CGMouseButton) -> ::sys::CGEventRef;
+ /// A non-variadic variant version of CGEventCreateScrollWheelEvent.
+ ///
+ /// Returns a new Quartz scrolling event.
+ ///
+ /// This function allows you to create a scrolling event and customize the
+ /// event before posting it to the event system.
+ fn CGEventCreateScrollWheelEvent2(
+ source: ::sys::CGEventSourceRef,
+ units: CGScrollEventUnit,
+ wheelCount: libc::uint32_t,
+ wheel1: libc::int32_t,
+ wheel2: libc::int32_t,
+ wheel3: libc::int32_t,
+ ) -> ::sys::CGEventRef;
+
/// Post an event into the event stream at a specified location.
///
/// This function posts the specified event immediately before any event taps
/// instantiated for that location, and the event passes through any such
/// taps.
fn CGEventPost(tapLocation: CGEventTapLocation, event: ::sys::CGEventRef);
#[cfg(feature = "elcapitan")]
--- a/third_party/rust/core-graphics/src/font.rs
+++ b/third_party/rust/core-graphics/src/font.rs
@@ -6,16 +6,17 @@
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use std::ptr;
use core_foundation::base::{CFRelease, CFRetain, CFTypeID, TCFType};
use core_foundation::array::{CFArray, CFArrayRef};
use core_foundation::data::{CFData, CFDataRef};
+use core_foundation::number::CFNumber;
use core_foundation::string::{CFString, CFStringRef};
use core_foundation::dictionary::{CFDictionary, CFDictionaryRef};
use data_provider::CGDataProvider;
use geometry::CGRect;
use foreign_types::ForeignType;
use libc::{self, c_int, size_t};
@@ -58,17 +59,17 @@ impl CGFont {
if !font_ref.is_null() {
Ok(CGFont::from_ptr(font_ref))
} else {
Err(())
}
}
}
- pub fn create_copy_from_variations(&self, vars: &CFDictionary) -> Result<CGFont, ()> {
+ pub fn create_copy_from_variations(&self, vars: &CFDictionary<CFString, CFNumber>) -> Result<CGFont, ()> {
unsafe {
let font_ref = CGFontCreateCopyWithVariations(self.as_ptr(),
vars.as_concrete_TypeRef());
if !font_ref.is_null() {
Ok(CGFont::from_ptr(font_ref))
} else {
Err(())
}
--- a/third_party/rust/core-text/.cargo-checksum.json
+++ b/third_party/rust/core-text/.cargo-checksum.json
@@ -1,1 +1,1 @@
-{"files":{".travis.yml":"6aad961651169d31d79c0595624d1777b5c4cbb4cf2bed9a126c7e72d29411fd","COPYRIGHT":"ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a","Cargo.toml":"7a7725d84ea421fd0b48ddaa17e6abe58e3dd1507232dc03a76e2fbcb305ebd2","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","README.md":"0c82015d302c9937e6376debd961350afeaeb6dde228aac95e3a3115c5813613","src/font.rs":"640f17efb3492ad0e9c318a4e2e23da87120f817d055475290e2f58f0212577d","src/font_collection.rs":"4fbe6a45d227771e148498bab5f915bd6e7cb6f060427b8f4ac626a44fcee288","src/font_descriptor.rs":"188dfad16e1081ec411dbdce1d8210be187a2dac0cf983444f01d5122e7d8e6e","src/font_manager.rs":"de5e22620528322d6811d01f03975c53b676ec743297590de5e17a45393df0f1","src/lib.rs":"bd072cf53ebb643e4d21379d4487e60745999d20eab9caee8e56daa430cb65ca"},"package":"2bd581c37283d0c23311d179aefbb891f2324ee0405da58a26e8594ab76e5748"}
\ No newline at end of file
+{"files":{".travis.yml":"6aad961651169d31d79c0595624d1777b5c4cbb4cf2bed9a126c7e72d29411fd","COPYRIGHT":"ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a","Cargo.toml":"78c71afee9b093b27d65bb9acef96349c9a172b111bd29a84015cd25ac70f1e1","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","README.md":"0c82015d302c9937e6376debd961350afeaeb6dde228aac95e3a3115c5813613","src/font.rs":"446485c979c0c0fed05750970b665976c7297e08207bf5ee75c2bf922bba2427","src/font_collection.rs":"b2697e5212639eb6746546893e13604766b2a1adc3918cac0481ed856fc4843f","src/font_descriptor.rs":"171b8a43f555960ae93ef0e608a83111e13d698702c1808cfee0dcdba53f94ed","src/font_manager.rs":"de5e22620528322d6811d01f03975c53b676ec743297590de5e17a45393df0f1","src/lib.rs":"bd072cf53ebb643e4d21379d4487e60745999d20eab9caee8e56daa430cb65ca"},"package":"81f59bff773954e5cd058a3f5983406b52bec7cc65202bef340ba64a0c40ac91"}
\ No newline at end of file
--- a/third_party/rust/core-text/Cargo.toml
+++ b/third_party/rust/core-text/Cargo.toml
@@ -7,26 +7,26 @@
#
# If you believe there's an error in this file please file an
# issue against the rust-lang/cargo repository. If you're
# editing this file be aware that the upstream Cargo.toml
# will likely look very different (and much more reasonable)
[package]
name = "core-text"
-version = "9.2.0"
+version = "10.0.0"
authors = ["The Servo Project Developers"]
description = "Bindings to the Core Text framework."
license = "MIT/Apache-2.0"
-repository = "https://github.com/servo/core-text-rs"
+repository = "https://github.com/servo/core-foundation-rs"
[dependencies.core-foundation]
-version = "0.5"
+version = "0.6"
[dependencies.core-graphics]
-version = "0.13"
+version = "0.14"
[dependencies.foreign-types]
version = "0.3"
[dependencies.libc]
version = "0.2"
[features]
--- a/third_party/rust/core-text/src/font.rs
+++ b/third_party/rust/core-text/src/font.rs
@@ -12,16 +12,17 @@
use font_descriptor;
use font_descriptor::{CTFontDescriptor, CTFontDescriptorRef, CTFontOrientation};
use font_descriptor::{CTFontSymbolicTraits, CTFontTraits, SymbolicTraitAccessors, TraitAccessors};
use core_foundation::array::{CFArray, CFArrayRef};
use core_foundation::base::{CFIndex, CFOptionFlags, CFTypeID, CFTypeRef, TCFType};
use core_foundation::data::{CFData, CFDataRef};
use core_foundation::dictionary::{CFDictionary, CFDictionaryRef};
+use core_foundation::number::CFNumber;
use core_foundation::string::{CFString, CFStringRef, UniChar};
use core_foundation::url::{CFURL, CFURLRef};
use core_graphics::base::CGFloat;
use core_graphics::context::CGContext;
use core_graphics::font::{CGGlyph, CGFont};
use core_graphics::geometry::{CGAffineTransform, CGPoint, CGRect, CGSize};
use core_graphics::path::CGPath;
@@ -93,17 +94,17 @@ pub fn new_from_CGFont(cgfont: &CGFont,
ptr::null(),
ptr::null());
CTFont::wrap_under_create_rule(font_ref)
}
}
pub fn new_from_CGFont_with_variations(cgfont: &CGFont,
pt_size: f64,
- variations: &CFDictionary)
+ variations: &CFDictionary<CFString, CFNumber>)
-> CTFont {
unsafe {
let font_desc = font_descriptor::new_from_variations(variations);
let font_ref = CTFontCreateWithGraphicsFont(cgfont.as_ptr() as *mut _,
pt_size as CGFloat,
ptr::null(),
font_desc.as_concrete_TypeRef());
CTFont::wrap_under_create_rule(font_ref)
@@ -280,22 +281,21 @@ impl CTFont {
Some(CFData::wrap_under_create_rule(result))
}
}
}
pub fn get_bounding_rects_for_glyphs(&self, orientation: CTFontOrientation, glyphs: &[CGGlyph])
-> CGRect {
unsafe {
- let result = CTFontGetBoundingRectsForGlyphs(self.as_concrete_TypeRef(),
- orientation,
- glyphs.as_ptr(),
- ptr::null_mut(),
- glyphs.len() as CFIndex);
- result
+ CTFontGetBoundingRectsForGlyphs(self.as_concrete_TypeRef(),
+ orientation,
+ glyphs.as_ptr(),
+ ptr::null_mut(),
+ glyphs.len() as CFIndex)
}
}
pub fn draw_glyphs(&self, glyphs: &[CGGlyph], positions: &[CGPoint], context: CGContext) {
assert!(glyphs.len() == positions.len());
unsafe {
CTFontDrawGlyphs(self.as_concrete_TypeRef(),
glyphs.as_ptr(),
--- a/third_party/rust/core-text/src/font_collection.rs
+++ b/third_party/rust/core-text/src/font_collection.rs
@@ -4,27 +4,26 @@
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use font_descriptor;
use font_descriptor::{CTFontDescriptor, CTFontDescriptorCreateMatchingFontDescriptors};
-use font_manager::CTFontManagerCopyAvailableFontFamilyNames;
+use font_manager::{CTFontManagerCopyAvailableFontFamilyNames, CTFontManagerCopyAvailablePostScriptNames};
use core_foundation::array::{CFArray, CFArrayRef};
use core_foundation::base::{CFTypeID, TCFType};
use core_foundation::dictionary::{CFDictionary, CFDictionaryRef};
use core_foundation::number::CFNumber;
use core_foundation::set::CFSet;
use core_foundation::string::{CFString, CFStringRef};
use libc::c_void;
-use std::ptr;
#[repr(C)]
pub struct __CTFontCollection(c_void);
pub type CTFontCollectionRef = *const __CTFontCollection;
declare_TCFType! {
CTFontCollection, CTFontCollectionRef
@@ -68,41 +67,47 @@ pub fn create_for_all_families() -> CTFo
pub fn create_for_family(family: &str) -> Option<CTFontCollection> {
use font_descriptor::kCTFontFamilyNameAttribute;
unsafe {
let family_attr = CFString::wrap_under_get_rule(kCTFontFamilyNameAttribute);
let family_name: CFString = family.parse().unwrap();
let specified_attrs = CFDictionary::from_CFType_pairs(&[
- (family_attr.as_CFType(), family_name.as_CFType())
+ (family_attr.clone(), family_name.as_CFType())
]);
let wildcard_desc: CTFontDescriptor =
font_descriptor::new_from_attributes(&specified_attrs);
let mandatory_attrs = CFSet::from_slice(&[ family_attr.as_CFType() ]);
let matched_descs = CTFontDescriptorCreateMatchingFontDescriptors(
wildcard_desc.as_concrete_TypeRef(),
mandatory_attrs.as_concrete_TypeRef());
- if matched_descs == ptr::null() {
+ if matched_descs.is_null() {
return None;
}
let matched_descs = CFArray::wrap_under_create_rule(matched_descs);
// I suppose one doesn't even need the CTFontCollection object at this point.
// But we stick descriptors into and out of it just to provide a nice wrapper API.
Some(new_from_descriptors(&matched_descs))
}
}
pub fn get_family_names() -> CFArray<CFString> {
unsafe {
CFArray::wrap_under_create_rule(CTFontManagerCopyAvailableFontFamilyNames())
}
}
+pub fn get_postscript_names() -> CFArray<CFString> {
+ unsafe {
+ CFArray::wrap_under_create_rule(CTFontManagerCopyAvailablePostScriptNames())
+ }
+}
+
extern {
/*
* CTFontCollection.h
*/
static kCTFontCollectionRemoveDuplicatesOption: CFStringRef;
//fn CTFontCollectionCreateCopyWithFontDescriptors(original: CTFontCollectionRef,
--- a/third_party/rust/core-text/src/font_descriptor.rs
+++ b/third_party/rust/core-text/src/font_descriptor.rs
@@ -10,21 +10,22 @@
#![allow(non_upper_case_globals)]
use core_foundation::array::CFArrayRef;
use core_foundation::base::{CFType, CFTypeID, CFTypeRef, TCFType};
use core_foundation::dictionary::{CFDictionary, CFDictionaryRef};
use core_foundation::number::{CFNumber, CFNumberRef};
use core_foundation::set::CFSetRef;
use core_foundation::string::{CFString, CFStringRef};
-use core_foundation::url::{CFURLCopyFileSystemPath, kCFURLPOSIXPathStyle, CFURL};
+use core_foundation::url::CFURL;
use core_graphics::base::CGFloat;
use libc::c_void;
use std::mem;
+use std::path::PathBuf;
/*
* CTFontTraits.h
*/
// actually, these are extern enums
pub type CTFontFormat = u32;
pub const kCTFontFormatUnrecognized: CTFontFormat = 0;
pub const kCTFontFormatOpenTypePostScript: CTFontFormat = 1;
@@ -87,56 +88,55 @@ impl StylisticClassAccessors for CTFontS
fn is_serif(&self) -> bool {
let any_serif_class = kCTFontOldStyleSerifsClass
| kCTFontTransitionalSerifsClass
| kCTFontModernSerifsClass
| kCTFontClarendonSerifsClass
| kCTFontSlabSerifsClass
| kCTFontFreeformSerifsClass;
- return (*self & any_serif_class) != 0;
+ (*self & any_serif_class) != 0
}
fn is_sans_serif(&self) -> bool {
- return (*self & kCTFontSansSerifClass) != 0;
+ (*self & kCTFontSansSerifClass) != 0
}
fn is_script(&self) -> bool {
- return (*self & kCTFontScriptsClass) != 0;
+ (*self & kCTFontScriptsClass) != 0
}
fn is_fantasy(&self) -> bool {
- return (*self & kCTFontOrnamentalsClass) != 0;
+ (*self & kCTFontOrnamentalsClass) != 0
}
fn is_symbols(&self) -> bool {
- return (*self & kCTFontSymbolicClass) != 0;
+ (*self & kCTFontSymbolicClass) != 0
}
}
pub type CTFontAttributes = CFDictionary;
-pub type CTFontTraits = CFDictionary;
+pub type CTFontTraits = CFDictionary<CFString, CFType>;
pub trait TraitAccessors {
fn symbolic_traits(&self) -> CTFontSymbolicTraits;
fn normalized_weight(&self) -> f64;
fn normalized_width(&self) -> f64;
fn normalized_slant(&self) -> f64;
}
trait TraitAccessorPrivate {
- unsafe fn extract_number_for_key(&self, key: CFStringRef) -> CFNumber;
+ fn extract_number_for_key(&self, key: CFStringRef) -> CFNumber;
}
impl TraitAccessorPrivate for CTFontTraits {
- unsafe fn extract_number_for_key(&self, key: CFStringRef) -> CFNumber {
- let cftype = self.get_CFType(mem::transmute(key));
- assert!(cftype.instance_of::<CFNumber>());
- CFNumber::wrap_under_get_rule(mem::transmute(cftype.as_CFTypeRef()))
+ fn extract_number_for_key(&self, key: CFStringRef) -> CFNumber {
+ let cftype = self.get(key);
+ cftype.downcast::<CFNumber>().unwrap()
}
}
impl TraitAccessors for CTFontTraits {
fn symbolic_traits(&self) -> CTFontSymbolicTraits {
unsafe {
let number = self.extract_number_for_key(kCTFontSymbolicTrait);
@@ -235,62 +235,66 @@ impl CTFontDescriptor {
pub fn display_name(&self) -> String {
unsafe {
let value = self.get_string_attribute(kCTFontDisplayNameAttribute);
value.expect("A font must have a non-null display name.")
}
}
- pub fn font_path(&self) -> Option<String> {
+ pub fn font_path(&self) -> Option<PathBuf> {
unsafe {
let value = CTFontDescriptorCopyAttribute(self.0, kCTFontURLAttribute);
if value.is_null() {
return None;
}
let value = CFType::wrap_under_create_rule(value);
assert!(value.instance_of::<CFURL>());
let url = CFURL::wrap_under_get_rule(mem::transmute(value.as_CFTypeRef()));
- let path = CFString::wrap_under_create_rule(CFURLCopyFileSystemPath(
- url.as_concrete_TypeRef(),
- kCFURLPOSIXPathStyle,
- )).to_string();
- Some(path)
+ url.to_path()
}
}
pub fn traits(&self) -> CTFontTraits {
unsafe {
let value = CTFontDescriptorCopyAttribute(self.0, kCTFontTraitsAttribute);
assert!(!value.is_null());
let value = CFType::wrap_under_create_rule(value);
assert!(value.instance_of::<CFDictionary>());
CFDictionary::wrap_under_get_rule(mem::transmute(value.as_CFTypeRef()))
}
}
}
-pub fn new_from_attributes(attributes: &CFDictionary) -> CTFontDescriptor {
+pub fn new_from_attributes(attributes: &CFDictionary<CFString, CFType>) -> CTFontDescriptor {
unsafe {
let result: CTFontDescriptorRef =
CTFontDescriptorCreateWithAttributes(attributes.as_concrete_TypeRef());
CTFontDescriptor::wrap_under_create_rule(result)
}
}
-pub fn new_from_variations(variations: &CFDictionary) -> CTFontDescriptor {
+pub fn new_from_variations(variations: &CFDictionary<CFString, CFNumber>) -> CTFontDescriptor {
unsafe {
- let var_key = CFType::wrap_under_get_rule(mem::transmute(kCTFontVariationAttribute));
+ let var_key = CFString::wrap_under_get_rule(kCTFontVariationAttribute);
let var_val = CFType::wrap_under_get_rule(variations.as_CFTypeRef());
let attributes = CFDictionary::from_CFType_pairs(&[(var_key, var_val)]);
new_from_attributes(&attributes)
}
}
+pub fn new_from_postscript_name(name: &CFString) -> CTFontDescriptor {
+ unsafe {
+ let result: CTFontDescriptorRef =
+ CTFontDescriptorCreateWithNameAndSize(name.as_concrete_TypeRef(), 0.0);
+ CTFontDescriptor::wrap_under_create_rule(result)
+ }
+}
+
pub fn debug_descriptor(desc: &CTFontDescriptor) {
println!("family: {}", desc.family_name());
println!("name: {}", desc.font_name());
println!("style: {}", desc.style_name());
println!("display: {}", desc.display_name());
println!("path: {:?}", desc.font_path());
desc.show();
}