Item visibility and pub(<restricted>) as API design tools.
Show Notes
The easiest and most effective way to understand the example in this case will simply be to look directly at the source code. You can read the docs for each of the nested modules, but you’ll be doing a lot of navigating around for that.
Also, I am using Cargo’s --document-private-items flag, so that you can see all the items in all the modules, even those which are not public, but note that usually you would not see docs for those!
Links
the reference on visibility
RFC #1422
episode source code
e020
Sponsors
Thanks to Manning for sponsoring the show and giving all of you a 40%-off discount on their whole store (but especially their WebAssembly in Action MEAP) at deals.manning.com/new-rustacean!
Patreon Sponsors
Adam Green
Aleksey Pirogov
Alexander Kryvomaz
Alexander Lozada
Alexander Payne
Andrew Dirksen
Andrew Thompson
Anthony Deschamps
Anthony Scotti
Arlen Haftevani
Arlo (Hyena)
Arun Kulshreshtha
Behnam Esfahbod
Benjamin Manns
Benjamin Wasty
Brandon ‘Spanky’ Mills
Brian Casiello
Brian Manning
Brian McCallister
Bryan Stitt
Caryn Finkelman
Cass Costello
Cat Dad
Chap Lovejoy
Charlie Egan
Chip
Chris Palmer
Christoffer Ceutz
Cristian Paul
Dan Abrams
Daniel
Daniel Bross
Daniel Collin
Daniel Mason
David Carroll
David Hewson
Derek Morr
Dominic Cooney
Doug Reeves
Douglas Correa
Edmund Kump
Eduard Knyshov
Embark Studios
Eugene Bulkin
Evan Stoll
Fabio (decathorpe)
Fabio Correa
Gaveen Prabhasara
Graham Wihlidal
Henri Sivonen
Ian Jones
Hoàng Đức Hiếu
Hugo Josefson
“Jake”“ferris”" Taylor"
Jako Danar
James Cooper
James Hagans II
Jason Bowen
Jeff May
Jendrik Illner
Jerome Froelich
JockeTF
Joar Wandborg
Johan Andersson
John Rudnick
Jon
Jonah
Jonathan Knapp
Jonathan Turner
Joseph Hain
Joseph Mou
Joseph Schrag
Joe Percy
Justin Ossevoort
Kai Yao
Kazutaka Mise
Keith Gray
Kilian Rault
Lee Jenkins
Luca Schmid
Luiz Irber
Lukas Eller
Malnormalulo
Martin Heuschober
Masashi Fujita
Matt Rudder
Matthew Brenner
Matthias Ruszala
Max Jacobson
Max R.R. Collada
Messense Lv
Micael Bergeron
Michael Mc Donnell
Michael Melanson
Michael Sanders
Nathan Sculli
Nick Coish
Nick Gideo
Nick Stevens
Nicolas Pochet
Oladapo Fadeyi
Olaf Leidinger
Oliver Uvman
Oluseyi Sonaiya
Ovidiu Curcan
Pascal
Patrick O’Doherty
Paul Naranja
Paul Osborne
Peter Scholtens
Peter Tillemans
Pierre-Antoine Champin
Ralph Giles
Ramon Buckland
Randy MacLeod
Raph Levien
Richard Dallaway
Rob Tsuk
Robbie Clarken
Robert Chrzanowski
Romain Chossart
Ryan Blecher
Ryan Osial
Scott Moeller
Sebastián Ramírez Magrí
Simon Dickson
Simon G
Soren Bramer Schmidt
Steve Jenson
Steven Knight
Steven Murawski
Stuart Hinson
Tim Brooks
Tim Süberkrüb
Tom Prince
Toolmaker’s Guild
Ty Overby
Tyler Harper
Victor Kruger
Will Greenberg
Zak van der Merwe
Zachary Snyder
Zach Peters
Zaki
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!)
Become a sponsor
Patreon
Venmo
Dwolla
Cash.me
Flattr
PayPal.me
Contact
New Rustacean: + Twitter: @newrustacean + Email:
[email protected]
Chris Krycho + GitHub: chriskrycho + Twitter: @chriskrycho