{P: rooto:"YARD::CodeObjects::RootObject:@childrenIC:&YARD::CodeObjects::CodeObjectList[o:$YARD::CodeObjects::ModuleObject;IC;[ o:#YARD::CodeObjects::ClassObject;IC;[o:$YARD::CodeObjects::MethodObject:@module_functionF: @scope: instance:@visibility: public: @pathI"Yk::ESet#initialize:EF:@parameters[: @files[[I"for_yard_product.rb;Ti :@current_file_has_commentsT: @name:initialize:@source_type: ruby: @tags[:@docstrings{:@docstringIC:YARD::Docstring"oinitlialize with a block which returns comparing basis like Enumerable::sort_by, however using <, not <=>.;T;[o:YARD::Tags::Tag :@tag_nameI"yieldparam;F: @textI""object pointed by an element.;T;I"obj;T: @types[I" Object;T: @object@ o; ;I"yieldreturn;F; I"+should be comparable with method, '<'.;T;0;![I" Object;T;"@ o; ;I" return;F; I"a new instance of ESet;T;0;![I" ESet;F;"@ :@ref_tags[: @allI"initlialize with a block which returns comparing basis like Enumerable::sort_by, however using <, not <=>. @yieldparam [Object] obj object pointed by an element. @yieldreturn [Object] should be comparable with method, '<'.;T:@unresolved_reference0;"@ :@hash_flagF:@line_rangeo: Range: exclF: begini :endi :@ref_tag_recurse_counti:@namespace@ :@explicitT: @sourceI"def initialize end;T:@signatureI"def initialize;T: @dynamicTo; ; F; ;;;;I"Yk::ESet#begin;F;[;[[@i;T;;*;;;[;{;IC;";T;[o; ;I" return;F; I"!Return iterator to beginning;T;0;![I"ESet::Iterator;T;"@+;#[;$I":@return [ESet::Iterator] Return iterator to beginning;T;%0;"@+;&F;'o;(;)F;*i;+i;,i;-@ ;.T;/I"def begin end;T;0I"def begin;T;1To; ; F; ;;;;I"Yk::ESet#end;F;[;[[@i;T;;+;;;[;{;IC;";T;[o; ;I" return;F; I"Return iterator to end;T;0;![I"ESet::Iterator;T;"@>;#[;$I"4@return [ESet::Iterator] Return iterator to end;T;%0;"@>;&F;'o;(;)F;*i;+i;,i;-@ ;.T;/I"def end end;T;0I" def end;T;1To; ; F; ;;;;I"Yk::ESet#size;F;[;[[@i;T;: size;;;[;{;IC;";T;[o; ;I" return;F; I"Return container size;T;0;![I" Integer;T;"@Q;#[;$I",@return [Integer] Return container size;T;%0;"@Q;&F;'o;(;)F;*i;+i;,i;-@ ;.T;/I"def size end;T;0I" def size;T;1To; ; F; ;;;;I"Yk::ESet#clear;F;[;[[@i;T;: clear;;;[;{;IC;"Clear content;T;[;#[;$I"Clear content;T;%0;"@d;&F;'o;(;)F;*i;+i;,i;-@ ;.T;/I"def clear end;T;0I"def clear;T;1To; ; F; ;;;;I"Yk::ESet#upper_bound;F;[;[[@i;T;:upper_bound;;;[;{;IC;";T;[o; ;I" return;F; I"#Return iterator to upper bound;T;0;![I"ESet::Iterator;T;"@r;#[;$I"<@return [ESet::Iterator] Return iterator to upper bound;T;%0;"@r;&F;'o;(;)F;*i;+i;,i;-@ ;.T;/I"def upper_bound end;T;0I"def upper_bound;T;1To; ; F; ;;;;I"Yk::ESet#lower_bound;F;[;[[@i;T;:lower_bound;;;[;{;IC;";T;[o; ;I" return;F; I"#Return iterator to lower bound;T;0;![I"ESet::Iterator;T;"@;#[;$I"<@return [ESet::Iterator] Return iterator to lower bound;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@ ;.T;/I"def lower_bound end;T;0I"def lower_bound;T;1To; ; F; ;;;;I"Yk::ESet#insert;F;[[I" *args;T0;[[@i*;T;: insert;;;[;{;IC;";T;[o:YARD::Tags::OverloadTag ;I" overload;F; 0;;6;!0;0I"insert(position, obj);T;IC;"/Insert element with an object using a hint;T;[o; ;I" param;F; I"=Hint for the position where the element can be inserted.;T;I" position;T;![I"ESet::Iterator;T;"@o; ;I" param;F; I"3Object to be pointed by the inserted elements.;T;I"obj;T;![I" Object;T;"@o; ;I" return;F; I"}An iterator pointing to either the newly inserted element or to the element that already had its equivalent in the container.;T;0;![I"ESet::Iterator;T;"@;#[;$I"`Insert element with an object using a hint @param [ESet::Iterator] position Hint for the position where the element can be inserted. @param [Object] obj Object to be pointed by the inserted elements. @return [ESet::Iterator] An iterator pointing to either the newly inserted element or to the element that already had its equivalent in the container.;T;%0;"@;&F;,i: @summary0;[[I" position;T0[I"obj;T0;"@o;7 ;I" overload;F; 0;;6;!0;0I"insert(obj);T;IC;""Insert element with an object;T;[o; ;I" param;F; I"7key object to be pointed by the inserted elements.;T;I"obj;T;![I" Object;T;"@o; ;I" return;F; I"An array, with its first member set to an iterator pointing to either the newly inserted element or to the equivalent element already in the set. The second member in the array is set to true if a new element was inserted or false if an equivalent element already existed.;T;0;![I" Array;T;"@;#[;$I"Insert element with an object @param [Object] obj key object to be pointed by the inserted elements. @return [Array] An array, with its first member set to an iterator pointing to either the newly inserted element or to the equivalent element already in the set. The second member in the array is set to true if a new element was inserted or false if an equivalent element already existed.;T;%0;"@;&F;,i;80;[[I"obj;T0;"@;#[;$I"#@overload insert(position, obj) Insert element with an object using a hint @param [ESet::Iterator] position Hint for the position where the element can be inserted. @param [Object] obj Object to be pointed by the inserted elements. @return [ESet::Iterator] An iterator pointing to either the newly inserted element or to the element that already had its equivalent in the container. @overload insert(obj) Insert element with an object @param [Object] obj key object to be pointed by the inserted elements. @return [Array] An array, with its first member set to an iterator pointing to either the newly inserted element or to the equivalent element already in the set. The second member in the array is set to true if a new element was inserted or false if an equivalent element already existed.;T;%0;"@;&F;'o;(;)F;*i!;+i);,i;-@ ;.T;/I"def insert *args end;T;0I"def insert;T;1To; ; F; ;;;;I"Yk::ESet#erase;F;[[I" first;T0[I" last;T0;[[@i3;T;: erase;;;[;{;IC;"Removes from the set container a range of elements ([first,last)). Iterators specifying a range within the set container to be removed: [first,last). i.e., the range includes all the elements between first and last, including the element pointed by first but not the one pointed by last.;T;[ o; ;I" param;F; I"first iterator.;T;I" first;T;![I"ESet::Iterator;T;"@o; ;I" param;F; I"last iterator.;T;I" last;T;![I"ESet::Iterator;T;"@o; ;I" raise;F; I"HArgumentError raised when an argument is not a compatible iterator.;T;0;!0;"@o; ;I" raise;F; I"XArgumentError raised when first and last iterators are not from the same container.;T;0;!0;"@o; ;I" raise;F; I"0RangeError raised when erasing end iterator;T;0;!0;"@;#[;$I"RRemoves from the set container a range of elements ([first,last)). Iterators specifying a range within the set container to be removed: [first,last). i.e., the range includes all the elements between first and last, including the element pointed by first but not the one pointed by last. @param [ESet::Iterator] first first iterator. @param [ESet::Iterator] last last iterator. @raise ArgumentError raised when an argument is not a compatible iterator. @raise ArgumentError raised when first and last iterators are not from the same container. @raise RangeError raised when erasing end iterator;T;%0;"@;&F;'o;(;)F;*i,;+i2;,i;-@ ;.T;/I"def erase first, last end;T;0I"def erase first, last;T;1To; ; F; : class;;;I"Yk::ESet.find;F;[[I" first;T0[I" last;T0[I"obj;TI"nil;T;[[@i@;T;: find;;;[;{;IC;"Searches the container for an element with an object equivalent to the third argument and/or validated with the provided block in a range of elements ([first,last)), 'obj' and returns an iterator to it if found, otherwise it returns an iterator to .;T;[o; ;I" param;F; I"first iterator.;T;I" first;T;![I"ESet::Iterator;T;"@o; ;I" param;F; I"last iterator.;T;I" last;T;![I"ESet::Iterator;T;"@o; ;I" param;F; I""Object to search equivalency.;T;I"obj;T;!0;"@o; ;I"yieldparam;F; I"Oobject argument pointed by an element passed for validation with the block;T;I"obj;T;![I" Object;T;"@o; ;I"yieldreturn;F; I"%validation result from the block;T;0;![I" Object;T;"@o; ;I" return;F; I":iterator pointing the element with equivalent object.;T;0;![I"ESet::Iterator;T;"@o; ;I" raise;F; I"HArgumentError raised when an argument is not a compatible iterator.;T;0;!0;"@o; ;I" raise;F; I"XArgumentError raised when first and last iterators are not from the same container.;T;0;!0;"@o; ;I" raise;F; I"LArgumentError raised when neither parameter, obj nor block is provided.;T;0;!0;"@o; ;I" raise;F; I"6RangeError raised when dereferencing end iterator;T;0;!0;"@;#[;$I"Searches the container for an element with an object equivalent to the third argument and/or validated with the provided block in a range of elements ([first,last)), 'obj' and returns an iterator to it if found, otherwise it returns an iterator to . @param [ESet::Iterator] first first iterator. @param [ESet::Iterator] last last iterator. @param obj Object to search equivalency. @yieldparam [Object] obj object argument pointed by an element passed for validation with the block @yieldreturn [Object] validation result from the block @return [ESet::Iterator] iterator pointing the element with equivalent object. @raise ArgumentError raised when an argument is not a compatible iterator. @raise ArgumentError raised when first and last iterators are not from the same container. @raise ArgumentError raised when neither parameter, obj nor block is provided. @raise RangeError raised when dereferencing end iterator;T;%0;"@;&F;'o;(;)F;*i5;+i?;,i;-@ ;.T;/I"-def ESet.find first, last, obj = nil end;T;0I"$def find first, last, obj = nil;T;1To; ; F; ;:;;;I"Yk::ESet.for_each;F;[[I" first;T0[I" last;T0;[[@iH;T;: for_each;;;[;{;IC;"KApplies given block to each of the elements in the range [first,last).;T;[ o; ;I" param;F; I"first iterator.;T;I" first;T;![I"ESet::Iterator;T;"@=o; ;I" param;F; I"last iterator.;T;I" last;T;![I"ESet::Iterator;T;"@=o; ;I"yieldparam;F; I"object in an element;T;I"obj;T;![I" Object;T;"@=o; ;I" raise;F; I"HArgumentError raised when an argument is not a compatible iterator.;T;0;!0;"@=o; ;I" raise;F; I"XArgumentError raised when first and last iterators are not from the same container.;T;0;!0;"@=;#[;$I"tApplies given block to each of the elements in the range [first,last). @param [ESet::Iterator] first first iterator. @param [ESet::Iterator] last last iterator. @yieldparam [Object] obj object in an element @raise ArgumentError raised when an argument is not a compatible iterator. @raise ArgumentError raised when first and last iterators are not from the same container.;T;%0;"@=;&F;'o;(;)F;*iB;+iG;,i;-@ ;.T;/I"&def ESet.for_each first, last end;T;0I"def for_each first, last;T;1To; ;IC;[ o; ; F; ;;;;I"Yk::ESet::Iterator#inc;F;[;[[@iO;T;:inc;;;[;{;IC;"increment the position;T;[o; ;I" return;F; I" self;T;0;![I"ESet::Iterator;T;"@io; ;I" raise;F; I"2RangeError raised when advancing over the end;T;0;!0;"@i;#[;$I"nincrement the position @return [ESet::Iterator] self @raise RangeError raised when advancing over the end;T;%0;"@i;&F;'o;(;)F;*iL;+iN;,i;-@g;.T;/I"def inc end;T;0I" def inc;T;1To; ; F; ;;;;I"Yk::ESet::Iterator#dec;F;[;[[@iT;T;:dec;;;[;{;IC;"decrement the position;T;[o; ;I" return;F; I" self;T;0;![I"ESet::Iterator;T;"@o; ;I" raise;F; I"8RangeError raised when rewinding over the beginning;T;0;!0;"@;#[;$I"tdecrement the position @return [ESet::Iterator] self @raise RangeError raised when rewinding over the beginning;T;%0;"@;&F;'o;(;)F;*iQ;+iS;,i;-@g;.T;/I"def dec end;T;0I" def dec;T;1To; ; F; ;;;;I"Yk::ESet::Iterator#==;F;[[I"arg;T0;[[@iY;T;:==;;;[;{;IC;")compare for equivalence of positions;T;[o; ;I" return;F; I"true or false;T;0;!0;"@o; ;I" raise;F; I"AArgumentError raised in case right operand is not compatible;T;0;!0;"@;#[;$I"~compare for equivalence of positions @return true or false @raise ArgumentError raised in case right operand is not compatible;T;%0;"@;&F;'o;(;)F;*iV;+iX;,i;-@g;.T;/I"def == arg end;T;0I"def == arg;T;1To; ; F; ;;;;I"Yk::ESet::Iterator#!=;F;[;[[@i^;T;:!=;;;[;{;IC;"+compare for unequivalence of positions;T;[o; ;I" return;F; I"true or false;T;0;!0;"@o; ;I" raise;F; I"AArgumentError raised in case right operand is not compatible;T;0;!0;"@;#[;$I"compare for unequivalence of positions @return true or false @raise ArgumentError raised in case right operand is not compatible;T;%0;"@;&F;'o;(;)F;*i[;+i];,i;-@g;.T;/I"def != end;T;0I" def !=;T;1To; ; F; ;;;;I"Yk::ESet::Iterator#item;F;[;[[@ib;T;: item;;;[;{;IC;"=dereference the iterator, and returns the pointed object;T;[o; ;I" return;F; I"The pointed object;T;0;![I" Object;T;"@;#[;$I"adereference the iterator, and returns the pointed object @return [Object] The pointed object;T;%0;"@;&F;'o;(;)F;*i`;+ia;,i;-@g;.T;/I"def item end;T;0I" def item;T;1T: @owner@g:@class_mixinsIC;[;B@g:@instance_mixinsIC;[;B@g:@attributesIC:SymbolHash{;:IC;F{:@symbolize_valueT;IC;F{;GT;GT: @aliases{: @groups[;[[@iK;T;: Iterator;;;;;[;{;IC;"5Iterator class, pointing an element in container;T;[;#[;$I"5Iterator class, pointing an element in container;T;%0;"@g;&F;'o;(;)F;*iJ;+iJ;,i;-@ ;I"Yk::ESet::Iterator;F:@superclasso:YARD::CodeObjects::Proxy :@orignamespace0:@origname0: @imethod0;: Object;-@: @obj0: @type;:;1T;B@ ;CIC;[;B@ ;DIC;[;B@ ;EIC;F{;:IC;F{;GT;IC;F{;GT;GT;H{;I[;[[@i ;T;: ESet;;;;;[;{;IC;"ESets are containers with external iterators that store unique elements following a specific order. For use, require 'Yk/ESet';include Yk;;T;[;#[;$I"ESets are containers with external iterators that store unique elements following a specific order. For use, require 'Yk/ESet';include Yk;;T;%0;"@ ;&F;'o;(;)F;*i;+i;,i;-@;I" Yk::ESet;F;Ko;L ;M0;N0;O0;;P;-@;Q0;R;:;1To; ;IC;[o; ; F; ;;;;I"Yk::EMSet#initialize;F;[;[[@ik;T;;;;;[;{;IC;"oinitlialize with a block which returns comparing basis like Enumerable::sort_by, however using <, not <=>.;T;[o; ;I"yieldparam;F; I""object pointed by an element.;T;I"obj;T;![I" Object;T;"@o; ;I"yieldreturn;F; I"+should be comparable with method, '<'.;T;0;![I" Object;T;"@o; ;I" return;F; I"a new instance of EMSet;T;0;![I" EMSet;F;"@;#[;$I"initlialize with a block which returns comparing basis like Enumerable::sort_by, however using <, not <=>. @yieldparam [Object] obj object pointed by an element. @yieldreturn [Object] should be comparable with method, '<'.;T;%0;"@;&F;'o;(;)F;*ih;+ij;,i;-@;.T;/I"def initialize end;T;0I"def initialize;T;1To; ; F; ;;;;I"Yk::EMSet#begin;F;[;[[@in;T;;*;;;[;{;IC;";T;[o; ;I" return;F; I"!Return iterator to beginning;T;0;![I"EMSet::Iterator;T;"@;#[;$I";@return [EMSet::Iterator] Return iterator to beginning;T;%0;"@;&F;'o;(;)F;*im;+im;,i;-@;.T;/I"def begin end;T;0I"def begin;T;1To; ; F; ;;;;I"Yk::EMSet#end;F;[;[[@iq;T;;+;;;[;{;IC;";T;[o; ;I" return;F; I"Return iterator to end;T;0;![I"EMSet::Iterator;T;"@);#[;$I"5@return [EMSet::Iterator] Return iterator to end;T;%0;"@);&F;'o;(;)F;*ip;+ip;,i;-@;.T;/I"def end end;T;0I" def end;T;1To; ; F; ;;;;I"Yk::EMSet#size;F;[;[[@it;T;;2;;;[;{;IC;";T;[o; ;I" return;F; I"Return container size;T;0;![I" Integer;T;"@<;#[;$I",@return [Integer] Return container size;T;%0;"@<;&F;'o;(;)F;*is;+is;,i;-@;.T;/I"def size end;T;0I" def size;T;1To; ; F; ;;;;I"Yk::EMSet#clear;F;[;[[@iw;T;;3;;;[;{;IC;"Clear content;T;[;#[;$I"Clear content;T;%0;"@O;&F;'o;(;)F;*iv;+iv;,i;-@;.T;/I"def clear end;T;0I"def clear;T;1To; ; F; ;;;;I"Yk::EMSet#upper_bound;F;[;[[@iz;T;;4;;;[;{;IC;";T;[o; ;I" return;F; I"#Return iterator to upper bound;T;0;![I"EMSet::Iterator;T;"@];#[;$I"=@return [EMSet::Iterator] Return iterator to upper bound;T;%0;"@];&F;'o;(;)F;*iy;+iy;,i;-@;.T;/I"def upper_bound end;T;0I"def upper_bound;T;1To; ; F; ;;;;I"Yk::EMSet#lower_bound;F;[;[[@i};T;;5;;;[;{;IC;";T;[o; ;I" return;F; I"#Return iterator to lower bound;T;0;![I"EMSet::Iterator;T;"@p;#[;$I"=@return [EMSet::Iterator] Return iterator to lower bound;T;%0;"@p;&F;'o;(;)F;*i|;+i|;,i;-@;.T;/I"def lower_bound end;T;0I"def lower_bound;T;1To; ; F; ;;;;I"Yk::EMSet#insert;F;[[I" *args;T0;[[@i;T;;6;;;[;{;IC;";T;[o;7 ;I" overload;F; 0;;6;!0;0I"insert(position, obj);T;IC;"/Insert element with an object using a hint;T;[o; ;I" param;F; I"=Hint for the position where the element can be inserted.;T;I" position;T;![I"EMSet::Iterator;T;"@o; ;I" param;F; I"3Object to be pointed by the inserted elements.;T;I"obj;T;![I" Object;T;"@o; ;I" return;F; I"?An iterator pointing to either the newly inserted element.;T;0;![I"EMSet::Iterator;T;"@;#[;$I"Insert element with an object using a hint @param [EMSet::Iterator] position Hint for the position where the element can be inserted. @param [Object] obj Object to be pointed by the inserted elements. @return [EMSet::Iterator] An iterator pointing to either the newly inserted element.;T;%0;"@;&F;,i;80;[[I" position;T0[I"obj;T0;"@o;7 ;I" overload;F; 0;;6;!0;0I"insert(obj);T;IC;""Insert element with an object;T;[o; ;I" param;F; I"7key object to be pointed by the inserted elements.;T;I"obj;T;![I" Object;T;"@o; ;I" return;F; I"?An iterator pointing to either the newly inserted element.;T;0;![I"EMSet::Iterator;T;"@;#[;$I"Insert element with an object @param [Object] obj key object to be pointed by the inserted elements. @return [EMSet::Iterator] An iterator pointing to either the newly inserted element.;T;%0;"@;&F;,i;80;[[I"obj;T0;"@;#[;$I"@overload insert(position, obj) Insert element with an object using a hint @param [EMSet::Iterator] position Hint for the position where the element can be inserted. @param [Object] obj Object to be pointed by the inserted elements. @return [EMSet::Iterator] An iterator pointing to either the newly inserted element. @overload insert(obj) Insert element with an object @param [Object] obj key object to be pointed by the inserted elements. @return [EMSet::Iterator] An iterator pointing to either the newly inserted element.;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def insert *args end;T;0I"def insert;T;1To; ; F; ;;;;I"Yk::EMSet#erase;F;[[I" first;T0[I" last;T0;[[@i;T;;9;;;[;{;IC;"Removes from the set container a range of elements ([first,last)). Iterators specifying a range within the set container to be removed: [first,last). i.e., the range includes all the elements between first and last, including the element pointed by first but not the one pointed by last.;T;[ o; ;I" param;F; I"first iterator.;T;I" first;T;![I"EMSet::Iterator;T;"@o; ;I" param;F; I"last iterator.;T;I" last;T;![I"EMSet::Iterator;T;"@o; ;I" raise;F; I"HArgumentError raised when an argument is not a compatible iterator.;T;0;!0;"@o; ;I" raise;F; I"XArgumentError raised when first and last iterators are not from the same container.;T;0;!0;"@o; ;I" raise;F; I"0RangeError raised when erasing end iterator;T;0;!0;"@;#[;$I"TRemoves from the set container a range of elements ([first,last)). Iterators specifying a range within the set container to be removed: [first,last). i.e., the range includes all the elements between first and last, including the element pointed by first but not the one pointed by last. @param [EMSet::Iterator] first first iterator. @param [EMSet::Iterator] last last iterator. @raise ArgumentError raised when an argument is not a compatible iterator. @raise ArgumentError raised when first and last iterators are not from the same container. @raise RangeError raised when erasing end iterator;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def erase first, last end;T;0I"def erase first, last;T;1To; ; F; ;:;;;I"Yk::EMSet.find;F;[[I" first;T0[I" last;T0[I"obj;TI"nil;T;[[@i;T;;;;;;[;{;IC;"Searches the container for an element with an object equivalent to the third argument and/or validated with the provided block in a range of elements ([first,last)), 'obj' and returns an iterator to it if found, otherwise it returns an iterator to .;T;[o; ;I" param;F; I"first iterator.;T;I" first;T;![I"EMSet::Iterator;T;"@o; ;I" param;F; I"last iterator.;T;I" last;T;![I"EMSet::Iterator;T;"@o; ;I" param;F; I""Object to search equivalency.;T;I"obj;T;!0;"@o; ;I"yieldparam;F; I"Oobject argument pointed by an element passed for validation with the block;T;I"obj;T;![I" Object;T;"@o; ;I"yieldreturn;F; I"%validation result from the block;T;0;![I" Object;T;"@o; ;I" return;F; I":iterator pointing the element with equivalent object.;T;0;![I"EMSet::Iterator;T;"@o; ;I" raise;F; I"HArgumentError raised when an argument is not a compatible iterator.;T;0;!0;"@o; ;I" raise;F; I"XArgumentError raised when first and last iterators are not from the same container.;T;0;!0;"@o; ;I" raise;F; I"LArgumentError raised when neither parameter, obj nor block is provided.;T;0;!0;"@o; ;I" raise;F; I"6RangeError raised when dereferencing end iterator;T;0;!0;"@;#[;$I"Searches the container for an element with an object equivalent to the third argument and/or validated with the provided block in a range of elements ([first,last)), 'obj' and returns an iterator to it if found, otherwise it returns an iterator to . @param [EMSet::Iterator] first first iterator. @param [EMSet::Iterator] last last iterator. @param obj Object to search equivalency. @yieldparam [Object] obj object argument pointed by an element passed for validation with the block @yieldreturn [Object] validation result from the block @return [EMSet::Iterator] iterator pointing the element with equivalent object. @raise ArgumentError raised when an argument is not a compatible iterator. @raise ArgumentError raised when first and last iterators are not from the same container. @raise ArgumentError raised when neither parameter, obj nor block is provided. @raise RangeError raised when dereferencing end iterator;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;.T;/I".def EMSet.find first, last, obj = nil end;T;0I"$def find first, last, obj = nil;T;1To; ; F; ;:;;;I"Yk::EMSet.for_each;F;[[I" first;T0[I" last;T0;[[@i;T;;<;;;[;{;IC;"KApplies given block to each of the elements in the range [first,last).;T;[ o; ;I" param;F; I"first iterator.;T;I" first;T;![I"EMSet::Iterator;T;"@-o; ;I" param;F; I"last iterator.;T;I" last;T;![I"EMSet::Iterator;T;"@-o; ;I"yieldparam;F; I"object in an element;T;I"obj;T;![I" Object;T;"@-o; ;I" raise;F; I"HArgumentError raised when an argument is not a compatible iterator.;T;0;!0;"@-o; ;I" raise;F; I"XArgumentError raised when first and last iterators are not from the same container.;T;0;!0;"@-;#[;$I"vApplies given block to each of the elements in the range [first,last). @param [EMSet::Iterator] first first iterator. @param [EMSet::Iterator] last last iterator. @yieldparam [Object] obj object in an element @raise ArgumentError raised when an argument is not a compatible iterator. @raise ArgumentError raised when first and last iterators are not from the same container.;T;%0;"@-;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"'def EMSet.for_each first, last end;T;0I"def for_each first, last;T;1To; ;IC;[ o; ; F; ;;;;I"Yk::EMSet::Iterator#inc;F;[;[[@i;T;;=;;;[;{;IC;"increment the position;T;[o; ;I" return;F; I" self;T;0;![I"EMSet::Iterator;T;"@Yo; ;I" raise;F; I"2RangeError raised when advancing over the end;T;0;!0;"@Y;#[;$I"oincrement the position @return [EMSet::Iterator] self @raise RangeError raised when advancing over the end;T;%0;"@Y;&F;'o;(;)F;*i;+i;,i;-@W;.T;/I"def inc end;T;0I" def inc;T;1To; ; F; ;;;;I"Yk::EMSet::Iterator#dec;F;[;[[@i;T;;>;;;[;{;IC;"decrement the position;T;[o; ;I" return;F; I" self;T;0;![I"EMSet::Iterator;T;"@oo; ;I" raise;F; I"8RangeError raised when rewinding over the beginning;T;0;!0;"@o;#[;$I"udecrement the position @return [EMSet::Iterator] self @raise RangeError raised when rewinding over the beginning;T;%0;"@o;&F;'o;(;)F;*i;+i;,i;-@W;.T;/I"def dec end;T;0I" def dec;T;1To; ; F; ;;;;I"Yk::EMSet::Iterator#==;F;[[I"arg;T0;[[@i;T;;?;;;[;{;IC;")compare for equivalence of positions;T;[o; ;I" return;F; I"true or false;T;0;!0;"@o; ;I" raise;F; I"AArgumentError raised in case right operand is not compatible;T;0;!0;"@;#[;$I"~compare for equivalence of positions @return true or false @raise ArgumentError raised in case right operand is not compatible;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@W;.T;/I"def == arg end;T;0I"def == arg;T;1To; ; F; ;;;;I"Yk::EMSet::Iterator#!=;F;[;[[@i;T;;@;;;[;{;IC;"+compare for unequivalence of positions;T;[o; ;I" return;F; I"true or false;T;0;!0;"@o; ;I" raise;F; I"AArgumentError raised in case right operand is not compatible;T;0;!0;"@;#[;$I"compare for unequivalence of positions @return true or false @raise ArgumentError raised in case right operand is not compatible;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@W;.T;/I"def != end;T;0I" def !=;T;1To; ; F; ;;;;I"Yk::EMSet::Iterator#item;F;[;[[@i;T;;A;;;[;{;IC;"=dereference the iterator, and returns the pointed object;T;[o; ;I" return;F; I"The pointed object;T;0;![I" Object;T;"@;#[;$I"adereference the iterator, and returns the pointed object @return [Object] The pointed object;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@W;.T;/I"def item end;T;0I" def item;T;1T;B@W;CIC;[;B@W;DIC;[;B@W;EIC;F{;:IC;F{;GT;IC;F{;GT;GT;H{;I[;[[@i;T;;J;;;;;[;{;IC;"5Iterator class, pointing an element in container;T;[;#[;$I"5Iterator class, pointing an element in container;T;%0;"@W;&F;'o;(;)F;*i;+i;,i;-@;I"Yk::EMSet::Iterator;F;Ko;L ;M0;N0;O0;;P;-@;Q0;R;:;1T;B@;CIC;[;B@;DIC;[;B@;EIC;F{;:IC;F{;GT;IC;F{;GT;GT;H{;I[;[[@ig;T;: EMSet;;;;;[;{;IC;"EMSets are containers with external iterators that store elements following a specific order, and where multiple elements can have equivalent values. For use, require 'Yk/ESet';include Yk;;T;[;#[;$I"EMSets are containers with external iterators that store elements following a specific order, and where multiple elements can have equivalent values. For use, require 'Yk/ESet';include Yk;;T;%0;"@;&F;'o;(;)F;*if;+if;,i;-@;I"Yk::EMSet;F;Ko;L ;M0;N0;O0;;P;-@;Q0;R;:;1To; ;IC;[o; ; F; ;;;;I"Yk::EMap#initialize;F;[;[[@i;T;;;;;[;{;IC;"oinitlialize with a block which returns comparing basis like Enumerable::sort_by, however using <, not <=>.;T;[o; ;I"yieldparam;F; I""object pointed by an element.;T;I"key;T;![I" Object;T;"@o; ;I"yieldreturn;F; I"+should be comparable with method, '<'.;T;0;![I" Object;T;"@o; ;I" return;F; I"a new instance of EMap;T;0;![I" EMap;F;"@;#[;$I"initlialize with a block which returns comparing basis like Enumerable::sort_by, however using <, not <=>. @yieldparam [Object] key object pointed by an element. @yieldreturn [Object] should be comparable with method, '<'.;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def initialize end;T;0I"def initialize;T;1To; ; F; ;;;;I"Yk::EMap#begin;F;[;[[@i;T;;*;;;[;{;IC;";T;[o; ;I" return;F; I"!Return iterator to beginning;T;0;![I"EMap::Iterator;T;"@;#[;$I":@return [EMap::Iterator] Return iterator to beginning;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def begin end;T;0I"def begin;T;1To; ; F; ;;;;I"Yk::EMap#end;F;[;[[@i;T;;+;;;[;{;IC;";T;[o; ;I" return;F; I"Return iterator to end;T;0;![I"EMap::Iterator;T;"@;#[;$I"4@return [EMap::Iterator] Return iterator to end;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def end end;T;0I" def end;T;1To; ; F; ;;;;I"Yk::EMap#size;F;[;[[@i;T;;2;;;[;{;IC;";T;[o; ;I" return;F; I"Return container size;T;0;![I" Integer;T;"@,;#[;$I",@return [Integer] Return container size;T;%0;"@,;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def size end;T;0I" def size;T;1To; ; F; ;;;;I"Yk::EMap#clear;F;[;[[@i;T;;3;;;[;{;IC;"Clear content;T;[;#[;$I"Clear content;T;%0;"@?;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def clear end;T;0I"def clear;T;1To; ; F; ;;;;I"Yk::EMap#upper_bound;F;[;[[@i;T;;4;;;[;{;IC;";T;[o; ;I" return;F; I"#Return iterator to upper bound;T;0;![I"EMap::Iterator;T;"@M;#[;$I"<@return [EMap::Iterator] Return iterator to upper bound;T;%0;"@M;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def upper_bound end;T;0I"def upper_bound;T;1To; ; F; ;;;;I"Yk::EMap#lower_bound;F;[;[[@i;T;;5;;;[;{;IC;";T;[o; ;I" return;F; I"#Return iterator to lower bound;T;0;![I"EMap::Iterator;T;"@`;#[;$I"<@return [EMap::Iterator] Return iterator to lower bound;T;%0;"@`;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def lower_bound end;T;0I"def lower_bound;T;1To; ; F; ;;;;I"Yk::EMap#insert;F;[[I" *args;T0;[[@i;T;;6;;;[;{;IC;";T;[o;7 ;I" overload;F; 0;;6;!0;0I"!insert(position, key, value);T;IC;"/Insert element with an object using a hint;T;[ o; ;I" param;F; I"=Hint for the position where the element can be inserted.;T;I" position;T;![I"EMap::Iterator;T;"@so; ;I" param;F; I"7key object to be pointed by the inserted elements.;T;I"key;T;![I" Object;T;"@so; ;I" param;F; I"9value object to be pointed by the inserted elements.;T;I" value;T;![I" Object;T;"@so; ;I" return;F; I"}An iterator pointing to either the newly inserted element or to the element that already had its equivalent in the container.;T;0;![I"EMap::Iterator;T;"@s;#[;$I"Insert element with an object using a hint @param [EMap::Iterator] position Hint for the position where the element can be inserted. @param [Object] key key object to be pointed by the inserted elements. @param [Object] value value object to be pointed by the inserted elements. @return [EMap::Iterator] An iterator pointing to either the newly inserted element or to the element that already had its equivalent in the container.;T;%0;"@s;&F;,i;80;[[I" position;T0[I"key;T0[I" value;T0;"@so;7 ;I" overload;F; 0;;6;!0;0I"insert(key, value);T;IC;""Insert element with an object;T;[o; ;I" param;F; I"7key object to be pointed by the inserted elements.;T;I"key;T;![I" Object;T;"@so; ;I" param;F; I"9value object to be pointed by the inserted elements.;T;I" value;T;![I" Object;T;"@so; ;I" return;F; I"An array, with its first member set to an iterator pointing to either the newly inserted element or to the equivalent element already in the set. The second member in the array is set to true if a new element was inserted or false if an equivalent element already existed.;T;0;![I" Array;T;"@s;#[;$I"Insert element with an object @param [Object] key key object to be pointed by the inserted elements. @param [Object] value value object to be pointed by the inserted elements. @return [Array] An array, with its first member set to an iterator pointing to either the newly inserted element or to the equivalent element already in the set. The second member in the array is set to true if a new element was inserted or false if an equivalent element already existed.;T;%0;"@s;&F;,i;80;[[I"key;T0[I" value;T0;"@s;#[;$I"@overload insert(position, key, value) Insert element with an object using a hint @param [EMap::Iterator] position Hint for the position where the element can be inserted. @param [Object] key key object to be pointed by the inserted elements. @param [Object] value value object to be pointed by the inserted elements. @return [EMap::Iterator] An iterator pointing to either the newly inserted element or to the element that already had its equivalent in the container. @overload insert(key, value) Insert element with an object @param [Object] key key object to be pointed by the inserted elements. @param [Object] value value object to be pointed by the inserted elements. @return [Array] An array, with its first member set to an iterator pointing to either the newly inserted element or to the equivalent element already in the set. The second member in the array is set to true if a new element was inserted or false if an equivalent element already existed.;T;%0;"@s;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def insert *args end;T;0I"def insert;T;1To; ; F; ;;;;I"Yk::EMap#insert_or_assign;F;[[I" *args;T0;[[@i;T;:insert_or_assign;;;[;{;IC;";T;[o;7 ;I" overload;F; 0;;U;!0;0I"insert_or_assign(k, v);T;IC;"If a key equivalent to 'k' already exists in the container, assigns 'v' to value corresponding to the key. If the key does not exist, inserts the new value as if by insert.;T;[o; ;I" param;F; I"key object;T;I"k;T;![I" Object;T;"@o; ;I" param;F; I"value object;T;I"v;T;![I" Object;T;"@o; ;I" return;F; I"An array, with its first member set to an iterator pointing to either the newly inserted element or to the equivalent element already in the set. The second member in the array is set to true if a new element was inserted or false if an equivalent element already existed.;T;0;![I" Array;T;"@;#[;$I" If a key equivalent to 'k' already exists in the container, assigns 'v' to value corresponding to the key. If the key does not exist, inserts the new value as if by insert. @param [Object] k key object @param [Object] v value object @return [Array] An array, with its first member set to an iterator pointing to either the newly inserted element or to the equivalent element already in the set. The second member in the array is set to true if a new element was inserted or false if an equivalent element already existed.;T;%0;"@;&F;,i;80;[[I"k;T0[I"v;T0;"@o;7 ;I" overload;F; 0;;U;!0;0I"%insert_or_assign(position, k, v);T;IC;"3Insert element with key and value using a hint;T;[ o; ;I" param;F; I"=Hint for the position where the element can be inserted.;T;I" position;T;![I"EMap::Iterator;T;"@o; ;I" param;F; I"key object;T;I"k;T;![I" Object;T;"@o; ;I" param;F; I"value object;T;I"v;T;![I" Object;T;"@o; ;I" return;F; I"BIterator pointing at the element that was inserted or updated;T;0;![I"EMap::Iterator;T;"@;#[;$I"Insert element with key and value using a hint @param [EMap::Iterator] position Hint for the position where the element can be inserted. @param [Object] k key object @param [Object] v value object @return [EMap::Iterator] Iterator pointing at the element that was inserted or updated;T;%0;"@;&F;,i;80;[[I" position;T0[I"k;T0[I"v;T0;"@;#[;$I"{@overload insert_or_assign(k, v) If a key equivalent to 'k' already exists in the container, assigns 'v' to value corresponding to the key. If the key does not exist, inserts the new value as if by insert. @param [Object] k key object @param [Object] v value object @return [Array] An array, with its first member set to an iterator pointing to either the newly inserted element or to the equivalent element already in the set. The second member in the array is set to true if a new element was inserted or false if an equivalent element already existed. @overload insert_or_assign(position, k, v) Insert element with key and value using a hint @param [EMap::Iterator] position Hint for the position where the element can be inserted. @param [Object] k key object @param [Object] v value object @return [EMap::Iterator] Iterator pointing at the element that was inserted or updated;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"#def insert_or_assign *args end;T;0I"def insert_or_assign;T;1To; ; F; ;;;;I"Yk::EMap#erase;F;[[I" first;T0[I" last;T0;[[@i;T;;9;;;[;{;IC;"Removes from the set container a range of elements ([first,last)). Iterators specifying a range within the set container to be removed: [first,last). i.e., the range includes all the elements between first and last, including the element pointed by first but not the one pointed by last.;T;[ o; ;I" param;F; I"first iterator.;T;I" first;T;![I"EMap::Iterator;T;"@o; ;I" param;F; I"last iterator.;T;I" last;T;![I"EMap::Iterator;T;"@o; ;I" raise;F; I"HArgumentError raised when an argument is not a compatible iterator.;T;0;!0;"@o; ;I" raise;F; I"XArgumentError raised when first and last iterators are not from the same container.;T;0;!0;"@o; ;I" raise;F; I"0RangeError raised when erasing end iterator;T;0;!0;"@;#[;$I"RRemoves from the set container a range of elements ([first,last)). Iterators specifying a range within the set container to be removed: [first,last). i.e., the range includes all the elements between first and last, including the element pointed by first but not the one pointed by last. @param [EMap::Iterator] first first iterator. @param [EMap::Iterator] last last iterator. @raise ArgumentError raised when an argument is not a compatible iterator. @raise ArgumentError raised when first and last iterators are not from the same container. @raise RangeError raised when erasing end iterator;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def erase first, last end;T;0I"def erase first, last;T;1To; ; F; ;:;;;I"Yk::EMap.find;F;[[I" first;T0[I" last;T0[I"obj;TI"nil;T;[[@i;T;;;;;;[;{;IC;"Searches the container for an element with an object equivalent to the third argument and/or validated with the provided block in a range of elements ([first,last)), 'obj' and returns an iterator to it if found, otherwise it returns an iterator to .;T;[o; ;I" param;F; I"first iterator.;T;I" first;T;![I"EMap::Iterator;T;"@>o; ;I" param;F; I"last iterator.;T;I" last;T;![I"EMap::Iterator;T;"@>o; ;I" param;F; I""Object to search equivalency.;T;I"obj;T;!0;"@>o; ;I"yieldparam;F; I"Oobject argument pointed by an element passed for validation with the block;T;I"obj;T;![I" Object;T;"@>o; ;I"yieldreturn;F; I"%validation result from the block;T;0;![I" Object;T;"@>o; ;I" return;F; I":iterator pointing the element with equivalent object.;T;0;![I"EMap::Iterator;T;"@>o; ;I" raise;F; I"HArgumentError raised when an argument is not a compatible iterator.;T;0;!0;"@>o; ;I" raise;F; I"XArgumentError raised when first and last iterators are not from the same container.;T;0;!0;"@>o; ;I" raise;F; I"LArgumentError raised when neither parameter, obj nor block is provided.;T;0;!0;"@>o; ;I" raise;F; I"6RangeError raised when dereferencing end iterator;T;0;!0;"@>;#[;$I"Searches the container for an element with an object equivalent to the third argument and/or validated with the provided block in a range of elements ([first,last)), 'obj' and returns an iterator to it if found, otherwise it returns an iterator to . @param [EMap::Iterator] first first iterator. @param [EMap::Iterator] last last iterator. @param obj Object to search equivalency. @yieldparam [Object] obj object argument pointed by an element passed for validation with the block @yieldreturn [Object] validation result from the block @return [EMap::Iterator] iterator pointing the element with equivalent object. @raise ArgumentError raised when an argument is not a compatible iterator. @raise ArgumentError raised when first and last iterators are not from the same container. @raise ArgumentError raised when neither parameter, obj nor block is provided. @raise RangeError raised when dereferencing end iterator;T;%0;"@>;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"-def EMap.find first, last, obj = nil end;T;0I"$def find first, last, obj = nil;T;1To; ; F; ;:;;;I"Yk::EMap.for_each;F;[[I" first;T0[I" last;T0;[[@i;T;;<;;;[;{;IC;"KApplies given block to each of the elements in the range [first,last).;T;[ o; ;I" param;F; I"first iterator.;T;I" first;T;![I"EMap::Iterator;T;"@o; ;I" param;F; I"last iterator.;T;I" last;T;![I"EMap::Iterator;T;"@o; ;I"yieldparam;F; I"object in an element;T;I"obj;T;![I" Object;T;"@o; ;I" raise;F; I"HArgumentError raised when an argument is not a compatible iterator.;T;0;!0;"@o; ;I" raise;F; I"XArgumentError raised when first and last iterators are not from the same container.;T;0;!0;"@;#[;$I"tApplies given block to each of the elements in the range [first,last). @param [EMap::Iterator] first first iterator. @param [EMap::Iterator] last last iterator. @yieldparam [Object] obj object in an element @raise ArgumentError raised when an argument is not a compatible iterator. @raise ArgumentError raised when first and last iterators are not from the same container.;T;%0;"@;&F;'o;(;)F;*i;+i ;,i;-@;.T;/I"&def EMap.for_each first, last end;T;0I"def for_each first, last;T;1To; ;IC;[ o; ; F; ;;;;I"Yk::EMap::Iterator#inc;F;[;[[@i;T;;=;;;[;{;IC;"increment the position;T;[o; ;I" return;F; I" self;T;0;![I"EMap::Iterator;T;"@o; ;I" raise;F; I"2RangeError raised when advancing over the end;T;0;!0;"@;#[;$I"nincrement the position @return [EMap::Iterator] self @raise RangeError raised when advancing over the end;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def inc end;T;0I" def inc;T;1To; ; F; ;;;;I"Yk::EMap::Iterator#dec;F;[;[[@i;T;;>;;;[;{;IC;"decrement the position;T;[o; ;I" return;F; I" self;T;0;![I"EMap::Iterator;T;"@o; ;I" raise;F; I"8RangeError raised when rewinding over the beginning;T;0;!0;"@;#[;$I"tdecrement the position @return [EMap::Iterator] self @raise RangeError raised when rewinding over the beginning;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def dec end;T;0I" def dec;T;1To; ; F; ;;;;I"Yk::EMap::Iterator#==;F;[[I"arg;T0;[[@i;T;;?;;;[;{;IC;")compare for equivalence of positions;T;[o; ;I" return;F; I"true or false;T;0;!0;"@o; ;I" raise;F; I"AArgumentError raised in case right operand is not compatible;T;0;!0;"@;#[;$I"~compare for equivalence of positions @return true or false @raise ArgumentError raised in case right operand is not compatible;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def == arg end;T;0I"def == arg;T;1To; ; F; ;;;;I"Yk::EMap::Iterator#!=;F;[;[[@i$;T;;@;;;[;{;IC;"+compare for unequivalence of positions;T;[o; ;I" return;F; I"true or false;T;0;!0;"@o; ;I" raise;F; I"AArgumentError raised in case right operand is not compatible;T;0;!0;"@;#[;$I"compare for unequivalence of positions @return true or false @raise ArgumentError raised in case right operand is not compatible;T;%0;"@;&F;'o;(;)F;*i!;+i#;,i;-@;.T;/I"def != end;T;0I" def !=;T;1To; ; F; ;;;;I"Yk::EMap::Iterator#item;F;[;[[@i(;T;;A;;;[;{;IC;"Ndereference the iterator, and returns the key object and the value object;T;[o; ;I" return;F; I"5Array of the pointed key object and value object;T;0;![I" Array;T;"@;#[;$I"dereference the iterator, and returns the key object and the value object @return [Array] Array of the pointed key object and value object;T;%0;"@;&F;'o;(;)F;*i&;+i';,i;-@;.T;/I"def item end;T;0I" def item;T;1T;B@;CIC;[;B@;DIC;[;B@;EIC;F{;:IC;F{;GT;IC;F{;GT;GT;H{;I[;[[@i;T;;J;;;;;[;{;IC;"5Iterator class, pointing an element in container;T;[;#[;$I"5Iterator class, pointing an element in container;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;I"Yk::EMap::Iterator;F;Ko;L ;M0;N0;O0;;P;-@;Q0;R;:;1T;B@;CIC;[;B@;DIC;[;B@;EIC;F{;:IC;F{;GT;IC;F{;GT;GT;H{;I[;[[@i;T;: EMap;;;;;[;{;IC;"EMaps are associative containers with external iterators that store elements formed by a combination of a key and a value, following a specific order. For use, require 'Yk/ESet';include Yk;;T;[;#[;$I"EMaps are associative containers with external iterators that store elements formed by a combination of a key and a value, following a specific order. For use, require 'Yk/ESet';include Yk;;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;I" Yk::EMap;F;Ko;L ;M0;N0;O0;;P;-@;Q0;R;:;1To; ;IC;[o; ; F; ;;;;I"Yk::EMMap#initialize;F;[;[[@i1;T;;;;;[;{;IC;"oinitlialize with a block which returns comparing basis like Enumerable::sort_by, however using <, not <=>.;T;[o; ;I"yieldparam;F; I""object pointed by an element.;T;I"key;T;![I" Object;T;"@:o; ;I"yieldreturn;F; I"+should be comparable with method, '<'.;T;0;![I" Object;T;"@:o; ;I" return;F; I"a new instance of EMMap;T;0;![I" EMMap;F;"@:;#[;$I"initlialize with a block which returns comparing basis like Enumerable::sort_by, however using <, not <=>. @yieldparam [Object] key object pointed by an element. @yieldreturn [Object] should be comparable with method, '<'.;T;%0;"@:;&F;'o;(;)F;*i.;+i0;,i;-@8;.T;/I"def initialize end;T;0I"def initialize;T;1To; ; F; ;;;;I"Yk::EMMap#begin;F;[;[[@i4;T;;*;;;[;{;IC;";T;[o; ;I" return;F; I"!Return iterator to beginning;T;0;![I"EMMap::Iterator;T;"@X;#[;$I";@return [EMMap::Iterator] Return iterator to beginning;T;%0;"@X;&F;'o;(;)F;*i3;+i3;,i;-@8;.T;/I"def begin end;T;0I"def begin;T;1To; ; F; ;;;;I"Yk::EMMap#end;F;[;[[@i7;T;;+;;;[;{;IC;";T;[o; ;I" return;F; I"Return iterator to end;T;0;![I"EMMap::Iterator;T;"@k;#[;$I"5@return [EMMap::Iterator] Return iterator to end;T;%0;"@k;&F;'o;(;)F;*i6;+i6;,i;-@8;.T;/I"def end end;T;0I" def end;T;1To; ; F; ;;;;I"Yk::EMMap#size;F;[;[[@i:;T;;2;;;[;{;IC;";T;[o; ;I" return;F; I"Return container size;T;0;![I" Integer;T;"@~;#[;$I",@return [Integer] Return container size;T;%0;"@~;&F;'o;(;)F;*i9;+i9;,i;-@8;.T;/I"def size end;T;0I" def size;T;1To; ; F; ;;;;I"Yk::EMMap#clear;F;[;[[@i=;T;;3;;;[;{;IC;"Clear content;T;[;#[;$I"Clear content;T;%0;"@;&F;'o;(;)F;*i<;+i<;,i;-@8;.T;/I"def clear end;T;0I"def clear;T;1To; ; F; ;;;;I"Yk::EMMap#upper_bound;F;[;[[@i@;T;;4;;;[;{;IC;";T;[o; ;I" return;F; I"#Return iterator to upper bound;T;0;![I"EMMap::Iterator;T;"@;#[;$I"=@return [EMMap::Iterator] Return iterator to upper bound;T;%0;"@;&F;'o;(;)F;*i?;+i?;,i;-@8;.T;/I"def upper_bound end;T;0I"def upper_bound;T;1To; ; F; ;;;;I"Yk::EMMap#lower_bound;F;[;[[@iC;T;;5;;;[;{;IC;";T;[o; ;I" return;F; I"#Return iterator to lower bound;T;0;![I"EMMap::Iterator;T;"@;#[;$I"=@return [EMMap::Iterator] Return iterator to lower bound;T;%0;"@;&F;'o;(;)F;*iB;+iB;,i;-@8;.T;/I"def lower_bound end;T;0I"def lower_bound;T;1To; ; F; ;;;;I"Yk::EMMap#insert;F;[[I" *args;T0;[[@iP;T;;6;;;[;{;IC;";T;[o;7 ;I" overload;F; 0;;6;!0;0I"!insert(position, key, value);T;IC;"/Insert element with an object using a hint;T;[ o; ;I" param;F; I"=Hint for the position where the element can be inserted.;T;I" position;T;![I"EMMap::Iterator;T;"@o; ;I" param;F; I"7key object to be pointed by the inserted elements.;T;I"key;T;![I" Object;T;"@o; ;I" param;F; I"9value object to be pointed by the inserted elements.;T;I" value;T;![I" Object;T;"@o; ;I" return;F; I"?An iterator pointing to either the newly inserted element.;T;0;![I"EMMap::Iterator;T;"@;#[;$I"mInsert element with an object using a hint @param [EMMap::Iterator] position Hint for the position where the element can be inserted. @param [Object] key key object to be pointed by the inserted elements. @param [Object] value value object to be pointed by the inserted elements. @return [EMMap::Iterator] An iterator pointing to either the newly inserted element.;T;%0;"@;&F;,i;80;[[I" position;T0[I"key;T0[I" value;T0;"@o;7 ;I" overload;F; 0;;6;!0;0I"insert(key, value);T;IC;""Insert element with an object;T;[o; ;I" param;F; I"7key object to be pointed by the inserted elements.;T;I"key;T;![I" Object;T;"@o; ;I" param;F; I"9value object to be pointed by the inserted elements.;T;I" value;T;![I" Object;T;"@o; ;I" return;F; I"?An iterator pointing to either the newly inserted element.;T;0;![I"EMMap::Iterator;T;"@;#[;$I"Insert element with an object @param [Object] key key object to be pointed by the inserted elements. @param [Object] value value object to be pointed by the inserted elements. @return [EMMap::Iterator] An iterator pointing to either the newly inserted element.;T;%0;"@;&F;,i;80;[[I"key;T0[I" value;T0;"@;#[;$I"@overload insert(position, key, value) Insert element with an object using a hint @param [EMMap::Iterator] position Hint for the position where the element can be inserted. @param [Object] key key object to be pointed by the inserted elements. @param [Object] value value object to be pointed by the inserted elements. @return [EMMap::Iterator] An iterator pointing to either the newly inserted element. @overload insert(key, value) Insert element with an object @param [Object] key key object to be pointed by the inserted elements. @param [Object] value value object to be pointed by the inserted elements. @return [EMMap::Iterator] An iterator pointing to either the newly inserted element.;T;%0;"@;&F;'o;(;)F;*iE;+iO;,i;-@8;.T;/I"def insert *args end;T;0I"def insert;T;1To; ; F; ;;;;I"Yk::EMMap#erase;F;[[I" first;T0[I" last;T0;[[@iY;T;;9;;;[;{;IC;"Removes from the set container a range of elements ([first,last)). Iterators specifying a range within the set container to be removed: [first,last). i.e., the range includes all the elements between first and last, including the element pointed by first but not the one pointed by last.;T;[ o; ;I" param;F; I"first iterator.;T;I" first;T;![I"EMMap::Iterator;T;"@o; ;I" param;F; I"last iterator.;T;I" last;T;![I"EMMap::Iterator;T;"@o; ;I" raise;F; I"HArgumentError raised when an argument is not a compatible iterator.;T;0;!0;"@o; ;I" raise;F; I"XArgumentError raised when first and last iterators are not from the same container.;T;0;!0;"@o; ;I" raise;F; I"0RangeError raised when erasing end iterator;T;0;!0;"@;#[;$I"TRemoves from the set container a range of elements ([first,last)). Iterators specifying a range within the set container to be removed: [first,last). i.e., the range includes all the elements between first and last, including the element pointed by first but not the one pointed by last. @param [EMMap::Iterator] first first iterator. @param [EMMap::Iterator] last last iterator. @raise ArgumentError raised when an argument is not a compatible iterator. @raise ArgumentError raised when first and last iterators are not from the same container. @raise RangeError raised when erasing end iterator;T;%0;"@;&F;'o;(;)F;*iR;+iX;,i;-@8;.T;/I"def erase first, last end;T;0I"def erase first, last;T;1To; ; F; ;:;;;I"Yk::EMMap.find;F;[[I" first;T0[I" last;T0[I"obj;TI"nil;T;[[@if;T;;;;;;[;{;IC;"Searches the container for an element with an object equivalent to the third argument and/or validated with the provided block in a range of elements ([first,last)), 'obj' and returns an iterator to it if found, otherwise it returns an iterator to .;T;[o; ;I" param;F; I"first iterator.;T;I" first;T;![I"EMMap::Iterator;T;"@>o; ;I" param;F; I"last iterator.;T;I" last;T;![I"EMMap::Iterator;T;"@>o; ;I" param;F; I""Object to search equivalency.;T;I"obj;T;!0;"@>o; ;I"yieldparam;F; I"Oobject argument pointed by an element passed for validation with the block;T;I"obj;T;![I" Object;T;"@>o; ;I"yieldreturn;F; I"%validation result from the block;T;0;![I" Object;T;"@>o; ;I" return;F; I":iterator pointing the element with equivalent object.;T;0;![I"EMMap::Iterator;T;"@>o; ;I" raise;F; I"HArgumentError raised when an argument is not a compatible iterator.;T;0;!0;"@>o; ;I" raise;F; I"XArgumentError raised when first and last iterators are not from the same container.;T;0;!0;"@>o; ;I" raise;F; I"LArgumentError raised when neither parameter, obj nor block is provided.;T;0;!0;"@>o; ;I" raise;F; I"6RangeError raised when dereferencing end iterator;T;0;!0;"@>;#[;$I"Searches the container for an element with an object equivalent to the third argument and/or validated with the provided block in a range of elements ([first,last)), 'obj' and returns an iterator to it if found, otherwise it returns an iterator to . @param [EMMap::Iterator] first first iterator. @param [EMMap::Iterator] last last iterator. @param obj Object to search equivalency. @yieldparam [Object] obj object argument pointed by an element passed for validation with the block @yieldreturn [Object] validation result from the block @return [EMMap::Iterator] iterator pointing the element with equivalent object. @raise ArgumentError raised when an argument is not a compatible iterator. @raise ArgumentError raised when first and last iterators are not from the same container. @raise ArgumentError raised when neither parameter, obj nor block is provided. @raise RangeError raised when dereferencing end iterator;T;%0;"@>;&F;'o;(;)F;*i[;+ie;,i;-@8;.T;/I".def EMMap.find first, last, obj = nil end;T;0I"$def find first, last, obj = nil;T;1To; ; F; ;:;;;I"Yk::EMMap.for_each;F;[[I" first;T0[I" last;T0;[[@in;T;;<;;;[;{;IC;"KApplies given block to each of the elements in the range [first,last).;T;[ o; ;I" param;F; I"first iterator.;T;I" first;T;![I"EMMap::Iterator;T;"@o; ;I" param;F; I"last iterator.;T;I" last;T;![I"EMMap::Iterator;T;"@o; ;I"yieldparam;F; I"object in an element;T;I"obj;T;![I" Object;T;"@o; ;I" raise;F; I"HArgumentError raised when an argument is not a compatible iterator.;T;0;!0;"@o; ;I" raise;F; I"XArgumentError raised when first and last iterators are not from the same container.;T;0;!0;"@;#[;$I"vApplies given block to each of the elements in the range [first,last). @param [EMMap::Iterator] first first iterator. @param [EMMap::Iterator] last last iterator. @yieldparam [Object] obj object in an element @raise ArgumentError raised when an argument is not a compatible iterator. @raise ArgumentError raised when first and last iterators are not from the same container.;T;%0;"@;&F;'o;(;)F;*ih;+im;,i;-@8;.T;/I"'def EMMap.for_each first, last end;T;0I"def for_each first, last;T;1To; ;IC;[ o; ; F; ;;;;I"Yk::EMMap::Iterator#inc;F;[;[[@iu;T;;=;;;[;{;IC;"increment the position;T;[o; ;I" return;F; I" self;T;0;![I"EMMap::Iterator;T;"@o; ;I" raise;F; I"2RangeError raised when advancing over the end;T;0;!0;"@;#[;$I"oincrement the position @return [EMMap::Iterator] self @raise RangeError raised when advancing over the end;T;%0;"@;&F;'o;(;)F;*ir;+it;,i;-@;.T;/I"def inc end;T;0I" def inc;T;1To; ; F; ;;;;I"Yk::EMMap::Iterator#dec;F;[;[[@iz;T;;>;;;[;{;IC;"decrement the position;T;[o; ;I" return;F; I" self;T;0;![I"EMMap::Iterator;T;"@o; ;I" raise;F; I"8RangeError raised when rewinding over the beginning;T;0;!0;"@;#[;$I"udecrement the position @return [EMMap::Iterator] self @raise RangeError raised when rewinding over the beginning;T;%0;"@;&F;'o;(;)F;*iw;+iy;,i;-@;.T;/I"def dec end;T;0I" def dec;T;1To; ; F; ;;;;I"Yk::EMMap::Iterator#==;F;[[I"arg;T0;[[@i;T;;?;;;[;{;IC;")compare for equivalence of positions;T;[o; ;I" return;F; I"true or false;T;0;!0;"@o; ;I" raise;F; I"AArgumentError raised in case right operand is not compatible;T;0;!0;"@;#[;$I"~compare for equivalence of positions @return true or false @raise ArgumentError raised in case right operand is not compatible;T;%0;"@;&F;'o;(;)F;*i|;+i~;,i;-@;.T;/I"def == arg end;T;0I"def == arg;T;1To; ; F; ;;;;I"Yk::EMMap::Iterator#!=;F;[;[[@i;T;;@;;;[;{;IC;"+compare for unequivalence of positions;T;[o; ;I" return;F; I"true or false;T;0;!0;"@o; ;I" raise;F; I"AArgumentError raised in case right operand is not compatible;T;0;!0;"@;#[;$I"compare for unequivalence of positions @return true or false @raise ArgumentError raised in case right operand is not compatible;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def != end;T;0I" def !=;T;1To; ; F; ;;;;I"Yk::EMMap::Iterator#item;F;[;[[@i;T;;A;;;[;{;IC;"Ndereference the iterator, and returns the key object and the value object;T;[o; ;I" return;F; I"5Array of the pointed key object and value object;T;0;![I" Array;T;"@;#[;$I"dereference the iterator, and returns the key object and the value object @return [Array] Array of the pointed key object and value object;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;.T;/I"def item end;T;0I" def item;T;1T;B@;CIC;[;B@;DIC;[;B@;EIC;F{;:IC;F{;GT;IC;F{;GT;GT;H{;I[;[[@iq;T;;J;;;;;[;{;IC;"5Iterator class, pointing an element in container;T;[;#[;$I"5Iterator class, pointing an element in container;T;%0;"@;&F;'o;(;)F;*ip;+ip;,i;-@8;I"Yk::EMMap::Iterator;F;Ko;L ;M0;N0;O0;;P;-@;Q0;R;:;1T;B@8;CIC;[;B@8;DIC;[;B@8;EIC;F{;:IC;F{;GT;IC;F{;GT;GT;H{;I[;[[@i-;T;: EMMap;;;;;[;{;IC;"EMMaps are associative containers with external iterators that store elements formed by a combination of a key and a value, following a specific order, and where multiple elements can have equivalent keys. For use, 'Yk/ESet';include Yk;;T;[;#[;$I"EMMaps are associative containers with external iterators that store elements formed by a combination of a key and a value, following a specific order, and where multiple elements can have equivalent keys. For use, 'Yk/ESet';include Yk;;T;%0;"@8;&F;'o;(;)F;*i,;+i,;,i;-@;I"Yk::EMMap;F;Ko;L ;M0;N0;O0;;P;-@;Q0;R;:;1T;B@;CIC;[;B@;DIC;[;B@;EIC;F{;:IC;F{;GT;IC;F{;GT;GT;H{;I[;[[@i;T;:Yk;;;;;[;{;IC;"namespace Yk;T;[;#[;$I"namespace Yk;T;%0;"@;&F;'o;(;)F;*i;+i;,i;-@;I"Yk;F;B@;CIC;[;B@;DIC;[;B@;EIC;F{;:IC;F{;GT;IC;F{;GT;GT;H{;I[;[;F;;;;;;;[;{;IC;" ;T;[;#[;$I";T;%0;"@;,i;-0;@V;X@: Yk::ESet@ :Yk::ESet#initialize@ :Yk::ESet#begin@+:Yk::ESet#end@>:Yk::ESet#size@Q:Yk::ESet#clear@d:Yk::ESet#upper_bound@r:Yk::ESet#lower_bound@:Yk::ESet#insert@:Yk::ESet#erase@:Yk::ESet.find@:Yk::ESet.for_each@=:Yk::ESet::Iterator@g:Yk::ESet::Iterator#inc@i:Yk::ESet::Iterator#dec@:Yk::ESet::Iterator#==@:Yk::ESet::Iterator#!=@:Yk::ESet::Iterator#item@:Yk::EMSet@:Yk::EMSet#initialize@:Yk::EMSet#begin@:Yk::EMSet#end@):Yk::EMSet#size@<:Yk::EMSet#clear@O:Yk::EMSet#upper_bound@]:Yk::EMSet#lower_bound@p:Yk::EMSet#insert@:Yk::EMSet#erase@:Yk::EMSet.find@:Yk::EMSet.for_each@-:Yk::EMSet::Iterator@W:Yk::EMSet::Iterator#inc@Y:Yk::EMSet::Iterator#dec@o:Yk::EMSet::Iterator#==@:Yk::EMSet::Iterator#!=@:Yk::EMSet::Iterator#item@: Yk::EMap@:Yk::EMap#initialize@:Yk::EMap#begin@:Yk::EMap#end@:Yk::EMap#size@,:Yk::EMap#clear@?:Yk::EMap#upper_bound@M:Yk::EMap#lower_bound@`:Yk::EMap#insert@s:Yk::EMap#insert_or_assign@:Yk::EMap#erase@:Yk::EMap.find@>:Yk::EMap.for_each@:Yk::EMap::Iterator@:Yk::EMap::Iterator#inc@:Yk::EMap::Iterator#dec@:Yk::EMap::Iterator#==@:Yk::EMap::Iterator#!=@:Yk::EMap::Iterator#item@:Yk::EMMap@8:Yk::EMMap#initialize@::Yk::EMMap#begin@X:Yk::EMMap#end@k:Yk::EMMap#size@~:Yk::EMMap#clear@:Yk::EMMap#upper_bound@:Yk::EMMap#lower_bound@:Yk::EMMap#insert@:Yk::EMMap#erase@:Yk::EMMap.find@>:Yk::EMMap.for_each@:Yk::EMMap::Iterator@:Yk::EMMap::Iterator#inc@:Yk::EMMap::Iterator#dec@:Yk::EMMap::Iterator#==@:Yk::EMMap::Iterator#!=@:Yk::EMMap::Iterator#item@