var searchIndex = {}; searchIndex["rotor"] = {"doc":"The mio-based framework for doing I/O in simple and composable way","items":[[3,"EventSet","rotor","",null,null],[8,"Evented","","A value that may be registered with an `EventLoop`",null,null],[3,"PollOpt","","",null,null],[3,"Timeout","","",null,null],[3,"TimerError","","",null,null],[0,"util","rotor::mio","Utilities for non-blocking IO programs",null,null],[6,"Slab","rotor::mio::util","",null,null],[3,"Queue","","",null,null],[0,"prelude","rotor::mio","",null,null],[8,"TryRead","rotor::mio::prelude","",null,null],[11,"try_read_buf","","",0,null],[10,"try_read","","",0,null],[3,"EventLoop","","Single threaded IO event loop.",null,null],[8,"TryWrite","","",null,null],[11,"try_write_buf","","",1,null],[10,"try_write","","",1,null],[8,"TryRead","rotor::mio","",null,null],[11,"try_read_buf","","",0,null],[10,"try_read","","",0,null],[3,"EventLoop","","Single threaded IO event loop.",null,null],[3,"Poll","","",null,null],[6,"TimerResult","","",null,null],[3,"Token","","",null,null],[12,"0","","",2,null],[3,"Ipv6Addr","","Representation of an IPv6 address.",null,null],[3,"TimerError","","",null,null],[3,"PollOpt","","",null,null],[4,"IpAddr","","An IP address, either a IPv4 or IPv6 address.",null,null],[13,"V4","","",3,null],[13,"V6","","",3,null],[0,"udp","","",null,null],[3,"UdpSocket","rotor::mio::udp","",null,null],[3,"Sender","rotor::mio","Sends messages to the EventLoop from other threads.",null,null],[8,"Handler","","",null,null],[16,"Timeout","","",4,null],[16,"Message","","",4,null],[11,"ready","","Invoked when the socket represented by `token` is ready to be operated\non. `events` indicates the specific operations that are\nready to be performed.",4,null],[11,"notify","","Invoked when a message has been received via the event loop's channel.",4,null],[11,"timeout","","Invoked when a timeout has completed.",4,null],[11,"interrupted","","Invoked when `EventLoop` has been interrupted by a signal interrupt.",4,null],[11,"tick","","Invoked at the end of an event loop tick.",4,null],[3,"EventSet","","",null,null],[3,"Events","","",null,null],[4,"NotifyError","","",null,null],[13,"Io","","",5,null],[13,"Full","","",5,null],[13,"Closed","","",5,null],[3,"EventLoopConfig","","Configure EventLoop runtime details",null,null],[3,"Timeout","","",null,null],[3,"IoEvent","","",null,null],[12,"kind","","",6,null],[12,"token","","",6,null],[8,"TryWrite","","",null,null],[11,"try_write_buf","","",1,null],[10,"try_write","","",1,null],[0,"tcp","","",null,null],[3,"TcpStream","rotor::mio::tcp","",null,null],[3,"TcpListener","","",null,null],[4,"Shutdown","","Possible values which can be passed to the `shutdown` method of `TcpStream`.",null,null],[13,"Read","","Indicates that the reading portion of this stream/socket should be shut\ndown. All currently blocked and future reads will return `Ok(0)`.",7,null],[13,"Write","","Indicates that the writing portion of this stream/socket should be shut\ndown. All currently blocked and future writes will return an error.",7,null],[13,"Both","","Shut down both the reading and writing portions of this stream.",7,null],[8,"TryAccept","rotor::mio","",null,null],[16,"Output","","",8,null],[10,"accept","","",8,null],[8,"Evented","","A value that may be registered with an `EventLoop`",null,null],[3,"Ipv4Addr","","Representation of an IPv4 address.",null,null],[3,"Selector","","The guts of the Windows event loop, this is the struct which actually owns\na completion port.",null,null],[3,"Handler","rotor","Standard mio loop handler",null,null],[3,"Scope","","The structure passed to every action handler",null,null],[3,"EarlyScope","","This is a structure that works similarly to Scope, but doesn't\nhave a context",null,null],[3,"Notifier","","The object used to wakeup unrelated state machine",null,null],[3,"Config","","Event loop configuration",null,null],[3,"Loop","","An object that is used to construct a loop",null,null],[3,"LoopInstance","","",null,null],[3,"Response","","The response of a state machine to the (mio) action",null,null],[4,"SpawnError","","",null,null],[13,"NoSlabSpace","","The State Machine Slab capacity is reached",9,null],[13,"UserError","","Error returned from `Machine::create` handler",9,null],[4,"Compose2","","Composes two state machines",null,null],[13,"A","","",10,null],[13,"B","","",10,null],[11,"new_with_capacity","","",11,{"inputs":[{"name":"c"},{"name":"eventloop"},{"name":"usize"}],"output":{"name":"handler"}}],[11,"new","","",11,{"inputs":[{"name":"c"},{"name":"eventloop"}],"output":{"name":"handler"}}],[11,"add_machine_with","","",11,null],[11,"ready","","",11,null],[11,"notify","","",11,null],[11,"timeout","","",11,null],[11,"register","","",12,null],[11,"reregister","","",12,null],[11,"deregister","","",12,null],[11,"timeout_ms","","",12,null],[11,"clear_timeout","","",12,null],[11,"notifier","","Create a `Notifier` that may be used to `wakeup` enclosed state machine",12,null],[11,"shutdown_loop","","Shutdown the event loop",12,null],[11,"register","","",12,null],[11,"reregister","","",12,null],[11,"deregister","","",12,null],[11,"timeout_ms","","",12,null],[11,"clear_timeout","","",12,null],[11,"notifier","","Create a `Notifier` that may be used to `wakeup` enclosed state machine",12,null],[11,"deref","","",12,null],[11,"deref_mut","","",12,null],[11,"register","","",13,null],[11,"reregister","","",13,null],[11,"deregister","","",13,null],[11,"timeout_ms","","",13,null],[11,"clear_timeout","","",13,null],[11,"notifier","","Create a `Notifier` that may be used to `wakeup` enclosed state machine",13,null],[11,"register","","",13,null],[11,"reregister","","",13,null],[11,"deregister","","",13,null],[11,"timeout_ms","","",13,null],[11,"clear_timeout","","",13,null],[11,"notifier","","Create a `Notifier` that may be used to `wakeup` enclosed state machine",13,null],[11,"ok","","",14,{"inputs":[{"name":"m"}],"output":{"name":"response"}}],[11,"spawn","","",14,{"inputs":[{"name":"m"},{"name":"n"}],"output":{"name":"response"}}],[11,"done","","",14,{"inputs":[],"output":{"name":"response"}}],[11,"map","","",14,null],[11,"create","","",10,{"inputs":[{"name":"seed"},{"name":"scope"}],"output":{"name":"result"}}],[11,"ready","","",10,null],[11,"spawned","","",10,null],[11,"timeout","","",10,null],[11,"wakeup","","",10,null],[11,"fmt","","",15,null],[11,"clone","","",15,null],[11,"wakeup","","Wakeup a state machine",15,null],[11,"clone","","",16,null],[11,"fmt","","",16,null],[11,"default","","",16,{"inputs":[],"output":{"name":"config"}}],[11,"new","","Create new configuration with default options",16,{"inputs":[],"output":{"name":"config"}}],[11,"mio","","A mutable reference for ``mio::EventLoopConfig``",16,null],[11,"slab_capacity","","A capacity of state machine slab",16,null],[11,"new","","",17,{"inputs":[{"name":"config"}],"output":{"name":"result"}}],[11,"add_machine_with","","",17,null],[11,"instantiate","","",17,null],[11,"run","","",17,null],[11,"add_machine_with","","",18,null],[11,"run","","",18,null],[11,"fmt","","",9,null],[11,"description","","",9,null],[11,"cause","","",9,null],[11,"map","","",9,null],[11,"description","","",9,null],[11,"cause","","",9,null],[11,"from","","",9,{"inputs":[{"name":"box"}],"output":{"name":"spawnerror"}}],[11,"fmt","","",9,null],[8,"Machine","","A trait that every state machine in the loop must implement",null,null],[16,"Context","","Context type for the state machine",19,null],[16,"Seed","","Seed is piece of data that is needed to initialize the machine",19,null],[10,"create","","Create a machine from some data",19,{"inputs":[{"name":"seed"},{"name":"scope"}],"output":{"name":"result"}}],[10,"ready","","Socket readiness notification",19,null],[10,"spawned","","Called after spawn event",19,null],[11,"spawn_error","","Called instead of spawned, if there is no slab space",19,null],[10,"timeout","","Timeout happened",19,null],[10,"wakeup","","Message received",19,null],[8,"GenericScope","","A common part of `Scope` and `EarlyScope`",null,null],[10,"register","","",20,null],[10,"reregister","","",20,null],[10,"deregister","","",20,null],[10,"timeout_ms","","",20,null],[10,"clear_timeout","","",20,null],[10,"notifier","","",20,null],[14,"rotor_compose!","","",null,null],[11,"none","rotor::mio","",21,{"inputs":[],"output":{"name":"eventset"}}],[11,"readable","","",21,{"inputs":[],"output":{"name":"eventset"}}],[11,"writable","","",21,{"inputs":[],"output":{"name":"eventset"}}],[11,"error","","",21,{"inputs":[],"output":{"name":"eventset"}}],[11,"hup","","",21,{"inputs":[],"output":{"name":"eventset"}}],[11,"all","","",21,{"inputs":[],"output":{"name":"eventset"}}],[11,"is_readable","","",21,null],[11,"is_writable","","",21,null],[11,"is_error","","",21,null],[11,"is_hup","","",21,null],[11,"insert","","",21,null],[11,"remove","","",21,null],[11,"bits","","",21,null],[11,"contains","","",21,null],[11,"with_capacity","rotor::mio::util","",22,{"inputs":[{"name":"usize"}],"output":{"name":"queue"}}],[11,"push","","",22,null],[11,"pop","","",22,null],[11,"clone","","",22,null],[11,"cmp","rotor::mio","",23,null],[11,"partial_cmp","","",23,null],[11,"lt","","",23,null],[11,"le","","",23,null],[11,"gt","","",23,null],[11,"ge","","",23,null],[11,"clone","","",23,null],[11,"eq","","",23,null],[11,"ne","","",23,null],[11,"edge","","",23,{"inputs":[],"output":{"name":"pollopt"}}],[11,"empty","","",23,{"inputs":[],"output":{"name":"pollopt"}}],[11,"level","","",23,{"inputs":[],"output":{"name":"pollopt"}}],[11,"oneshot","","",23,{"inputs":[],"output":{"name":"pollopt"}}],[11,"all","","",23,{"inputs":[],"output":{"name":"pollopt"}}],[11,"is_edge","","",23,null],[11,"is_level","","",23,null],[11,"is_oneshot","","",23,null],[11,"bits","","",23,null],[11,"contains","","",23,null],[11,"insert","","",23,null],[11,"remove","","",23,null],[11,"bitor","","",23,null],[11,"bitxor","","",23,null],[11,"bitand","","",23,null],[11,"sub","","",23,null],[11,"not","","",23,null],[11,"fmt","","",23,null],[11,"cmp","","",21,null],[11,"partial_cmp","","",21,null],[11,"lt","","",21,null],[11,"le","","",21,null],[11,"gt","","",21,null],[11,"ge","","",21,null],[11,"clone","","",21,null],[11,"eq","","",21,null],[11,"ne","","",21,null],[11,"bitor","","",21,null],[11,"bitxor","","",21,null],[11,"bitand","","",21,null],[11,"sub","","",21,null],[11,"not","","",21,null],[11,"fmt","","",21,null],[11,"fmt","","",6,null],[11,"eq","","",6,null],[11,"ne","","",6,null],[11,"clone","","",6,null],[11,"new","","Create a new IoEvent.",6,{"inputs":[{"name":"eventset"},{"name":"token"}],"output":{"name":"ioevent"}}],[11,"fmt","","",24,null],[11,"clone","","",24,null],[11,"new","","Creates a new configuration for the event loop with all default options\nspecified.",24,{"inputs":[],"output":{"name":"eventloopconfig"}}],[11,"notify_capacity","","Sets the maximum number of messages that can be buffered on the event\nloop's notification channel before a send will fail.",24,null],[11,"messages_per_tick","","Sets the maximum number of messages that can be processed on any tick of\nthe event loop.",24,null],[11,"timer_tick_ms","","",24,null],[11,"timer_wheel_size","","",24,null],[11,"timer_capacity","","",24,null],[11,"default","","",24,{"inputs":[],"output":{"name":"eventloopconfig"}}],[11,"fmt","","",25,null],[11,"new","","Initializes a new event loop using default configuration settings. The\nevent loop will not be running yet.",25,{"inputs":[],"output":{"name":"result"}}],[11,"configured","","",25,{"inputs":[{"name":"eventloopconfig"}],"output":{"name":"result"}}],[11,"channel","","Returns a sender that allows sending messages to the event loop in a\nthread-safe way, waking up the event loop if needed.",25,null],[11,"timeout_ms","","Schedules a timeout after the requested time interval. When the\nduration has been reached,\n[Handler::timeout](trait.Handler.html#method.timeout) will be invoked\npassing in the supplied token.",25,null],[11,"clear_timeout","","If the supplied timeout has not been triggered, cancel it such that it\nwill not be triggered in the future.",25,null],[11,"shutdown","","Tells the event loop to exit after it is done handling all events in the\ncurrent iteration.",25,null],[11,"is_running","","Indicates whether the event loop is currently running. If it's not it has either\nstopped or is scheduled to stop on the next tick.",25,null],[11,"register","","Registers an IO handle with the event loop.",25,null],[11,"reregister","","Re-Registers an IO handle with the event loop.",25,null],[11,"run","","Keep spinning the event loop indefinitely, and notify the handler whenever\nany of the registered handles are ready.",25,null],[11,"deregister","","Deregisters an IO handle with the event loop.",25,null],[11,"run_once","","Spin the event loop once, with a timeout of one second, and notify the\nhandler if any of the registered handles become ready during that\ntime.",25,null],[11,"drop","","",25,null],[11,"clone","","",26,null],[11,"fmt","","",26,null],[11,"send","","",26,null],[11,"fmt","rotor::mio::tcp","",27,null],[11,"connect","","Create a new TCP stream an issue a non-blocking connect to the specified\naddress.",27,{"inputs":[{"name":"socketaddr"}],"output":{"name":"result"}}],[11,"connect_stream","","Creates a new `TcpStream` from the pending socket inside the given\n`std::net::TcpBuilder`, connecting it to the address specified.",27,{"inputs":[{"name":"tcpstream"},{"name":"socketaddr"}],"output":{"name":"result"}}],[11,"peer_addr","","",27,null],[11,"local_addr","","",27,null],[11,"try_clone","","",27,null],[11,"shutdown","","",27,null],[11,"set_nodelay","","",27,null],[11,"set_keepalive","","",27,null],[11,"take_socket_error","","",27,null],[11,"read","","",27,null],[11,"write","","",27,null],[11,"flush","","",27,null],[11,"register","","",27,null],[11,"reregister","","",27,null],[11,"deregister","","",27,null],[11,"fmt","","",28,null],[11,"bind","","Convenience method to bind a new TCP listener to the specified address\nto receive new connections.",28,{"inputs":[{"name":"socketaddr"}],"output":{"name":"result"}}],[11,"from_listener","","Creates a new `TcpListener` from an instance of a\n`std::net::TcpListener` type.",28,{"inputs":[{"name":"tcplistener"},{"name":"socketaddr"}],"output":{"name":"result"}}],[11,"accept","","Accepts a new `TcpStream`.",28,null],[11,"local_addr","","",28,null],[11,"try_clone","","",28,null],[11,"take_socket_error","","",28,null],[11,"register","","",28,null],[11,"reregister","","",28,null],[11,"deregister","","",28,null],[11,"accept","","",28,null],[11,"fmt","rotor::mio::udp","",29,null],[11,"v4","","Returns a new, unbound, non-blocking, IPv4 UDP socket",29,{"inputs":[],"output":{"name":"result"}}],[11,"v6","","Returns a new, unbound, non-blocking, IPv6 UDP socket",29,{"inputs":[],"output":{"name":"result"}}],[11,"bound","","",29,{"inputs":[{"name":"socketaddr"}],"output":{"name":"result"}}],[11,"bind","","",29,null],[11,"local_addr","","",29,null],[11,"try_clone","","",29,null],[11,"send_to","","",29,null],[11,"recv_from","","",29,null],[11,"set_broadcast","","",29,null],[11,"set_multicast_loop","","",29,null],[11,"join_multicast","","",29,null],[11,"leave_multicast","","",29,null],[11,"set_multicast_time_to_live","","",29,null],[11,"register","","",29,null],[11,"reregister","","",29,null],[11,"deregister","","",29,null],[11,"from","","",29,{"inputs":[{"name":"udpsocket"}],"output":{"name":"udpsocket"}}],[11,"from_str","rotor::mio","",3,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"fmt","","",5,null],[11,"fmt","","",5,null],[11,"description","","",5,null],[11,"cause","","",5,null],[11,"new","","",30,{"inputs":[],"output":{"name":"result"}}],[11,"register","","",30,null],[11,"reregister","","",30,null],[11,"deregister","","",30,null],[11,"poll","","",30,null],[11,"event","","",30,null],[11,"events","","",30,null],[11,"fmt","","",30,null],[11,"next","","",31,null],[11,"new","","",32,{"inputs":[],"output":{"name":"result"}}],[11,"select","","",32,null],[11,"clone","","",33,null],[11,"fmt","","",34,null],[11,"hash","","",2,null],[11,"cmp","","",2,null],[11,"partial_cmp","","",2,null],[11,"lt","","",2,null],[11,"le","","",2,null],[11,"gt","","",2,null],[11,"ge","","",2,null],[11,"eq","","",2,null],[11,"ne","","",2,null],[11,"fmt","","",2,null],[11,"clone","","",2,null],[11,"as_usize","","",2,null],[11,"from_usize","","",2,{"inputs":[{"name":"usize"}],"output":{"name":"token"}}],[11,"as_usize","","",2,null],[11,"new","","Creates a new IPv6 address from eight 16-bit segments.",35,{"inputs":[{"name":"u16"},{"name":"u16"},{"name":"u16"},{"name":"u16"},{"name":"u16"},{"name":"u16"},{"name":"u16"},{"name":"u16"}],"output":{"name":"ipv6addr"}}],[11,"segments","","Returns the eight 16-bit segments that make up this address.",35,null],[11,"is_unspecified","","Returns true for the special 'unspecified' address (::).",35,null],[11,"is_loopback","","Returns true if this is a loopback address (::1).",35,null],[11,"is_global","","Returns true if the address appears to be globally routable.",35,null],[11,"is_unique_local","","Returns true if this is a unique local address (fc00::/7).",35,null],[11,"is_unicast_link_local","","Returns true if the address is unicast and link-local (fe80::/10).",35,null],[11,"is_unicast_site_local","","Returns true if this is a deprecated unicast site-local address\n(fec0::/10).",35,null],[11,"is_documentation","","Returns true if this is an address reserved for documentation\n(2001:db8::/32).",35,null],[11,"is_unicast_global","","Returns true if the address is a globally routable unicast address.",35,null],[11,"multicast_scope","","Returns the address's multicast scope if the address is multicast.",35,null],[11,"is_multicast","","Returns true if this is a multicast address (ff00::/8).",35,null],[11,"to_ipv4","","Converts this address to an IPv4 address. Returns None if this address is\nneither IPv4-compatible or IPv4-mapped.",35,null],[11,"octets","","Returns the sixteen eight-bit integers the IPv6 address consists of.",35,null],[11,"new","","Creates a new IPv4 address from four eight-bit octets.",36,{"inputs":[{"name":"u8"},{"name":"u8"},{"name":"u8"},{"name":"u8"}],"output":{"name":"ipv4addr"}}],[11,"octets","","Returns the four eight-bit integers that make up this address.",36,null],[11,"is_unspecified","","Returns true for the special 'unspecified' address (0.0.0.0).",36,null],[11,"is_loopback","","Returns true if this is a loopback address (127.0.0.0/8).",36,null],[11,"is_private","","Returns true if this is a private address.",36,null],[11,"is_link_local","","Returns true if the address is link-local (169.254.0.0/16).",36,null],[11,"is_global","","Returns true if the address appears to be globally routable.\nSee [iana-ipv4-special-registry][ipv4-sr].\n[ipv4-sr]: http://goo.gl/RaZ7lg",36,null],[11,"is_multicast","","Returns true if this is a multicast address (224.0.0.0/4).",36,null],[11,"is_broadcast","","Returns true if this is a broadcast address (255.255.255.255).",36,null],[11,"is_documentation","","Returns true if this address is in a range designated for documentation.",36,null],[11,"to_ipv6_compatible","","Converts this address to an IPv4-compatible IPv6 address.",36,null],[11,"to_ipv6_mapped","","Converts this address to an IPv4-mapped IPv6 address.",36,null],[11,"fmt","","",36,null],[11,"fmt","","",36,null],[11,"clone","","",36,null],[11,"eq","","",36,null],[11,"hash","","",36,null],[11,"partial_cmp","","",36,null],[11,"cmp","","",36,null],[11,"from","","",36,{"inputs":[{"name":"u32"}],"output":{"name":"ipv4addr"}}],[11,"from","","",36,null],[11,"fmt","","",35,null],[11,"fmt","","",35,null],[11,"clone","","",35,null],[11,"eq","","",35,null],[11,"hash","","",35,null],[11,"partial_cmp","","",35,null],[11,"cmp","","",35,null],[11,"from","","",35,null],[11,"from_str","","",36,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"from_str","","",35,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"fmt","rotor::mio::tcp","",7,null],[11,"eq","","",7,null],[11,"clone","","",7,null],[11,"spawn_error","rotor","Called instead of spawned, if there is no slab space",19,null]],"paths":[[8,"TryRead"],[8,"TryWrite"],[3,"Token"],[4,"IpAddr"],[8,"Handler"],[4,"NotifyError"],[3,"IoEvent"],[4,"Shutdown"],[8,"TryAccept"],[4,"SpawnError"],[4,"Compose2"],[3,"Handler"],[3,"Scope"],[3,"EarlyScope"],[3,"Response"],[3,"Notifier"],[3,"Config"],[3,"Loop"],[3,"LoopInstance"],[8,"Machine"],[8,"GenericScope"],[3,"EventSet"],[3,"Queue"],[3,"PollOpt"],[3,"EventLoopConfig"],[3,"EventLoop"],[3,"Sender"],[3,"TcpStream"],[3,"TcpListener"],[3,"UdpSocket"],[3,"Poll"],[3,"Events"],[3,"Selector"],[3,"Timeout"],[3,"TimerError"],[3,"Ipv6Addr"],[3,"Ipv4Addr"]]}; initSearch(searchIndex);