Commit Graph

115 Commits

Author SHA1 Message Date
Alex Crichton
3efe51eb8b Reorganize and rewrite examples
This commit is a large-ish scale reorganization of our examples. The
main goal here is to have a dedicated section of the guide for example,
and all examples will be listed there. Each example's `README` is now
just boilerplate pointing at the guide along with a blurb about how to
run it.

Some examples like `math` and `smorgasboard` have been deleted as they
didn't really serve much purpose, and others like `closures` have been
rewritten with `web-sys` instead of hand-bound bindings.

Overall it's hoped that this puts us in a good and consistent state for
our examples, with all of them being described in the guide, excerpts
are in the guide, and they're all relatively idiomatically using
`web-sys`.
2018-09-20 16:45:30 -07:00
Alex Crichton
4ca187cc2b
Merge pull request #835 from blm768/webgl-example
Create basic WebGL example
2018-09-19 11:56:43 -07:00
Alex Crichton
7cf4213283 Allow returning Result from functions
This commit adds support for exporting a function defined in Rust that returns a
`Result`, translating the `Ok` variant to the actual return value and the `Err`
variant to an exception that's thrown in JS.

The support for return types and descriptors was rejiggered a bit to be a bit
more abstract and more well suited for this purpose. We no longer distinguish
between functions with a return value and those without a return value.
Additionally a new trait, `ReturnWasmAbi`, is used for converting return values.
This trait is an internal implementation detail, however, and shouldn't surface
itself to users much (if at all).

Closes #841
2018-09-18 13:13:59 -07:00
Ben Merritt
426671d83c Create basic WebGL example 2018-09-17 20:59:26 -07:00
Alex Crichton
87176b15bc Fix dependencies sections for web-sys in guide
Closes #829
2018-09-14 14:05:04 -07:00
Alex Crichton
05a0a5c6a1
Merge pull request #825 from fitzgen/paint-table-of-contents
guide: Add paint example to the table of contents
2018-09-13 18:21:03 -07:00
Nick Fitzgerald
fa5551d91f guide: Add paint example to the table of contents 2018-09-13 16:36:57 -07:00
Chinedu Francis Nwafili
17db217fe9
Change CI example to use a releaase binary 2018-09-13 19:06:31 -04:00
Anton Danilkin
97fc9b64f8 Add a section to the guide about the Paint example 2018-09-14 00:46:53 +03:00
Nick Fitzgerald
c6ede65856
Merge pull request #818 from fitzgen/guide-wasm-bindgen-test
guide: Add documentation for testing with `wasm-bindgen-test`
2018-09-12 15:40:31 -07:00
Nick Fitzgerald
e2e815a477 guide: Add documentation for testing with wasm-bindgen-test 2018-09-12 15:40:09 -07:00
Nick Fitzgerald
4e86ecd2c5
Merge pull request #813 from fitzgen/duck-typed-interfaces
Duck typed interfaces
2018-09-12 11:20:26 -07:00
Alex Crichton
73e6191b60
Merge pull request #703 from lnicola/guide-publish-app
Guide: explain how to deploy the applicaton to a web server
2018-09-12 09:33:39 -07:00
Nick Fitzgerald
1872e84a8a guide: Add section on working with duck-typed interfaces 2018-09-11 16:40:32 -07:00
Nick Fitzgerald
27a7008764 guide: Add section on accessing properties of untyped values
Part of #616
2018-09-11 15:26:51 -07:00
Alex Crichton
1d2d397f55
Merge pull request #808 from fitzgen/web-sys-in-the-guide
web-sys gets its own section in the guide
2018-09-11 10:08:06 -07:00
Nick Fitzgerald
3f92607be2
Merge pull request #810 from Tarnadas/doc/js-sys-function
doc: Add number suffix hint for JS function calls
2018-09-11 10:04:20 -07:00
Mario Reder
84a477d78d doc: Add number suffix hint for JS function calls 2018-09-11 07:25:08 +02:00
Mario Reder
e6fe9cf353 doc: Add nightly feature hint for closures
resolves #767
2018-09-11 07:06:21 +02:00
Laurentiu Nicola
8ffa24bfe5 Guide: explain how to deploy the application 2018-09-11 07:33:24 +03:00
Nick Fitzgerald
86796f8a03 guide: Add a user-facing web-sys section 2018-09-10 17:51:44 -07:00
Nick Fitzgerald
e730ee9a62 guide: update publishing new releases page 2018-09-10 15:37:12 -07:00
Nick Fitzgerald
1a39e4e737 guide: Fix nesting of contributing pages 2018-09-10 15:32:39 -07:00
Alex Crichton
457efc0f31 Implement support for WebIDL Callback types
This commit adds support for the WebIDL `Callback` type by translating all
callbacks to the `js_sys::Function` type. This will enable passing raw JS values
into callbacks as well as Rust valus using the `Closure` type.

This commit doesn't currently implement "callback interfaces" in WebIDL, that's
left for a follow-up commit.
2018-09-06 19:50:46 -07:00
Alex Crichton
269c491380
Gate web-sys APIs on activated features (#790)
* Gate `web-sys` APIs on activated features

Currently the compile times of `web-sys` are unfortunately prohibitive,
increasing the barrier to using it. This commit updates the crate to instead
have all APIs gated by a set of Cargo features which affect what bindings are
generated at compile time (and which are then compiled by rustc). It's
significantly faster to activate only a handful of features vs all thousand of
them!

A magical env var is added to print the list of all features that should be
generated, and then necessary logic is added to ferry features from the build
script to the webidl crate which then uses that as a filter to remove items
after parsing. Currently parsing is pretty speedy so we'll unconditionally parse
all WebIDL files, but this may change in the future!

For now this will make the `web-sys` crate a bit less ergonomic to use as lots
of features will need to be specified, but it should make it much more
approachable in terms of first-user experience with compile times.

* Fix AppVeyor testing web-sys

* FIx a typo

* Udpate feature listings from rebase conflicts

* Add some crate docs and such
2018-09-05 12:55:30 -07:00
Richard Dodd
7d5d845608 Add docs and remove typecheck from variadic attribute 2018-09-01 13:55:35 +01:00
Nick Fitzgerald
e290c75c32 Add @afdw to the team! \o/ 2018-08-30 12:59:34 -07:00
Alex Crichton
69a831423b Update publishing instructions
We've got a publish script now!
2018-08-27 13:51:47 -07:00
Alex Crichton
d4297ad2d3 Remove use_extern_macros features
This has now been stabilized!
2018-08-19 14:33:01 -07:00
Nick Fitzgerald
a5a8fd747d guide: Split supported types section up into many sub sections 2018-08-14 18:01:17 -07:00
Nick Fitzgerald
b1e3101fd4 guide: Add examples for number slices 2018-08-14 17:42:47 -07:00
Nick Fitzgerald
fea41b4a87 guide: also allow Option<bool> 2018-08-14 17:34:16 -07:00
Nick Fitzgerald
9c9e53485a guide: Add examples of boxed number slices 2018-08-14 17:15:01 -07:00
Nick Fitzgerald
8043baac69 guide: Add examples for working with numbers to types section 2018-08-14 15:45:25 -07:00
Nick Fitzgerald
602b63c1b0 guide: Add working with pointers example to types section 2018-08-14 15:24:43 -07:00
Alex Crichton
46f1719524
Merge pull request #696 from fitzgen/more-examples-for-guide
More examples for guide
2018-08-13 18:34:26 -06:00
Nick Fitzgerald
d1b2299340 guide: Add Box<[JsValue]> example to supported types section 2018-08-13 17:08:18 -07:00
Nick Fitzgerald
60307e81f9 guide: Add JsValue example to supported types section 2018-08-13 16:57:29 -07:00
Nick Fitzgerald
fedd1a5440 guide: Add bool example to supported types section 2018-08-13 16:55:05 -07:00
Nick Fitzgerald
975a122d6d guide: Add a char example to the supported types section 2018-08-13 16:24:39 -07:00
Nick Fitzgerald
74dc8874e1 guide: add String example usage to supported types 2018-08-13 16:20:25 -07:00
Nick Fitzgerald
fa72afe286 guide: Add str examples to supported types section 2018-08-13 16:12:58 -07:00
Nick Fitzgerald
8e19645006 guide: Add exported rust type examples to reference 2018-08-13 16:03:02 -07:00
Nick Fitzgerald
485d377594 guide: Add a reference section for Promises and Futures 2018-08-13 15:44:28 -07:00
R. Andrew Ohana
36fe4c23dc
Merge pull request #678 from derekdreery/webidl_namespace_support
Add support webidl namespaces.
2018-08-12 17:41:54 -07:00
Richard Dodd
ea05235985 Fix docs about testing webidl 2018-08-12 21:28:59 +01:00
Nick Fitzgerald
e87498e939 guide: Start adding example usage to "supported types" section 2018-08-10 16:56:40 -07:00
Mario Reder
cc76963bad
guide: typo in arbitrary data with serde 2018-08-09 17:46:38 +02:00
Nick Fitzgerald
2fcc74e226 guide: refactor and update testing instructions for contributing 2018-08-08 15:33:56 -07:00
Alex Crichton
5b935526ff
Merge pull request #640 from alexcrichton/jscast
Implement RFC #2 - casting hierarchy between JS values
2018-08-07 17:26:37 -05:00