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 134 135 136 137 138 139 140 141 142 143 144 145 146 147
#![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(())
//! # }
//! ```
//!
//! ### [Fugle Volumes][fuglevolumesweb]
//!
//! API
//! ```rust
//! # fn main() -> fugle::schema::Result<()> {
//! # use fugle::crawler::IntradayBuilder;
//!
//! let agent = IntradayBuilder::new().build();
//! agent.volumes("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
//! [fuglevolumesweb]: https://developer.fugle.tw/document/intraday/volumes
pub mod crawler;
#[cfg(feature = "websocket")]
pub mod listener;
pub mod schema;