1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
#![forbid(unsafe_code)] #![warn(clippy::all)] //! A Simple, Lightweight, Fast and Safe Fugle Library. //! //! What is [Fugle][fugleweb] //! //! This is a rust version library to access Fugle's //! //! * RESTful API //! * Websocket //! //! services in a very easy way. //! //! ## Examples //! //! for more please reference to the examples folder //! //! //! ### [Fugle Chart][fuglechartweb] //! //! API //! ```rust //! # fn main() -> fugle::schema::Result<()> { //! # use fugle::crawler::IntradayBuilder; //! //! let agent = IntradayBuilder::new().build(); //! agent.chart("2884").call()?; //! //! # Ok(()) //! # } //! ``` //! //! Websocket //! ```rust no_run //! # fn main() -> fugle::schema::Result<()> { //! # use fugle::listener; //! # use std::sync::mpsc; //! //! let (tx, rx) = mpsc::channel(); //! let mut lis = listener::Intraday::new("demo", tx.clone()); //! //! lis.chart("2884", true); //! let response = rx.recv()?; //! //! # Ok(()) //! # } //! ``` //! //! ### [Fugle Quote][fuglequoteweb] //! //! API //! ```rust //! # fn main() -> fugle::schema::Result<()> { //! # use fugle::crawler::IntradayBuilder; //! //! let agent = IntradayBuilder::new().build(); //! agent.quote("2884").call()?; //! //! # Ok(()) //! # } //! ``` //! //! Websocket //! ```rust no_run //! # fn main() -> fugle::schema::Result<()> { //! # use fugle::listener; //! # use std::sync::mpsc; //! //! let (tx, rx) = mpsc::channel(); //! let mut lis = listener::Intraday::new("demo", tx.clone()); //! //! lis.quote("2884", true); //! let response = rx.recv()?; //! //! # Ok(()) //! # } //! ``` //! //! ### [Fugle Meta][fuglemetaweb] //! //! API //! ```rust //! # fn main() -> fugle::schema::Result<()> { //! # use fugle::crawler::IntradayBuilder; //! //! let agent = IntradayBuilder::new().build(); //! agent.meta("2884").call()?; //! //! # Ok(()) //! # } //! ``` //! //! Websocket //! ```rust no_run //! # fn main() -> fugle::schema::Result<()> { //! # use fugle::listener; //! # use std::sync::mpsc; //! //! let (tx, rx) = mpsc::channel(); //! let mut lis = listener::Intraday::new("demo", tx.clone()); //! //! lis.meta("2884", true); //! let response = rx.recv()?; //! //! # Ok(()) //! # } //! ``` //! //! ### [Fugle Dealts][fugledealtsweb] //! //! API //! ```rust //! # fn main() -> fugle::schema::Result<()> { //! # use fugle::crawler::IntradayBuilder; //! //! let agent = IntradayBuilder::new().build(); //! agent.dealts("2884").call()?; //! //! # Ok(()) //! # } //! ``` //! //! [fugleweb]: https://developer.fugle.tw //! [fuglechartweb]: https://developer.fugle.tw/document/intraday/chart //! [fuglequoteweb]: https://developer.fugle.tw/document/intraday/quote //! [fuglemetaweb]: https://developer.fugle.tw/document/intraday/meta //! [fugledealtsweb]: https://developer.fugle.tw/document/intraday/dealts pub mod crawler; #[cfg(feature = "websocket")] pub mod listener; pub mod schema;