From 3e4e68b099cb4f1613755d8f8bae3d956713cdb5 Mon Sep 17 00:00:00 2001 From: Milo Yip Date: Fri, 4 Jul 2014 10:35:29 +0800 Subject: [PATCH] Rearrange diagrams and fix typos in tutorial --- doc/diagram/move1.dot | 19 +++++++++++++------ doc/diagram/move1.png | Bin 6513 -> 8181 bytes doc/diagram/move2.dot | 17 ++++++++--------- doc/diagram/move2.png | Bin 23536 -> 26753 bytes doc/diagram/move3.dot | 7 +++++-- doc/diagram/move3.png | Bin 22932 -> 22630 bytes doc/features.md | 6 +++--- doc/tutorial.md | 20 ++++++++++---------- 8 files changed, 39 insertions(+), 30 deletions(-) diff --git a/doc/diagram/move1.dot b/doc/diagram/move1.dot index e280212..a7c1464 100644 --- a/doc/diagram/move1.dot +++ b/doc/diagram/move1.dot @@ -5,7 +5,6 @@ digraph { margin="0,0" ranksep=0.2 penwidth=0.5 - forcelabels=true node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5] edge [fontname="Inconsolata, Consolas", fontsize=10, arrowhead=normal] @@ -19,10 +18,13 @@ digraph { node [shape=Mrecord, style=filled, colorscheme=spectral7] - b1 [label="{b:number|456}", fillcolor=6] - a1 [label="{a:number|123}", fillcolor=6] + { + rank = same + b1 [label="{b:number|456}", fillcolor=6] + a1 [label="{a:number|123}", fillcolor=6] + } - b1 -> a1 [style="dashed", constraint=false, label="Move"] + a1 -> b1 [style="dashed", label="Move", dir=back] } subgraph cluster2 { @@ -34,7 +36,12 @@ digraph { node [shape=Mrecord, style=filled, colorscheme=spectral7] - b2 [label="{b:null|}", fillcolor=1] - a2 [label="{a:number|456}", fillcolor=6] + { + rank = same + b2 [label="{b:null|}", fillcolor=1] + a2 [label="{a:number|456}", fillcolor=6] + } + a2 -> b2 [style=invis, dir=back] } + b1 -> b2 [style=invis] } \ No newline at end of file diff --git a/doc/diagram/move1.png b/doc/diagram/move1.png index 54053939aeb2a369f60b23a41bd501c68ac72952..bf4938dfecb90dede0f42df0c52e87ca7c16a417 100644 GIT binary patch literal 8181 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 xQ6QQh literal 6513 zcmbt(XH-*Lw|0~x9zjF|A;1A7H0jcjDo7RS9jQTz5PEL`rI=7fdX0z(NDaM5I)e0G zLZpQbQbI{6H|IUy`0o92@3`X~ckMmaUO!fuYwkJMGoQKOI$Ej}WDH~g0DwYWO-T;` zxG_s?NBnt{SnDhH^btR#U=39z!1dqHr`EzG0DzuTT}i>fKYJG)WNt7ycl)=4J&^Pd z)wki%%a=&NjNY_QRn)6b|0+1NUX*QBw-=<7e$B&Oa5M7sspaF} zdaUp6C|K%DJW19aQLrXWpWSE4!shrjP;@TtC_pg@2sshwshw8y?M;teF#-q-i~<0j z>45VXiBk1-0|2yuMj+ss|KH7y=K`dF`^=s~fUw^mVr~E;-kaYAJd#-j0{}~`bR>X3 zDgWE9rE`YOO-=ZX(R>-PTVckzxw)>cuKXdL1IRFby!RMa-{$~d(y>WjJ%pZl!)f9VWky-%vooV)4j^eL;jEs!j-JeKX*{_r1 zNt&K|VS&uE+%#k%n!fh@X#?Y9W6R6SGl~Uzvt!~n{8KVBrNCVE;{YLa0?xw6gH?Ke|i)P@jFK7an4TK8id^Jf?= z`Ni7mk0f|sZ}0lg3=xRU_!FaI0|=~&BMOOzbcquec0IGmH)-@-JKh|hg}dnKjh*by zTUc1&^rJE}Gwo4~fBhxnJjLhW-~h@LcVVEiX!ebR-Mo2oMv$8Uh0VSEznZptBJtiz`hEDqoav1u&r&HfWL) zy8h00xMr4kG1S<=peFSCD%Gi}sp)~Px;os36+~;+u^;H6sHmu-LMknN@6MfBq^+vA zcg8UAFQqsfeM}XXj$jDmgHJE73MMPun2bDLI05-7yh6nv0x|;f2325vm zLmNZ=ri%5Qe9C+%GxB4e``Br&OXPD$rAI}P`lOh>T;}SLK|ZlwVrk{NgMJLP;cJMz z5)J>_gzbvAP}S4lUqo@)q_+z<-=4z{xkZH=n0+lTvjH+PW?)27VfC0T5r~?D_$PfY zkE^v9-l;O{E~)(t?Y0`Max-%sD6zqk>lvzE3G`7-?enOU>*b;I#bQIz#+qBpRnPMG z`+4)-vaz@7M-cW!0l$BDR&oT~Iv;1kNBzjb-`f?es<&k}B%fqP<}i(q=;-SwdF?G% zJ$)M+2QgIKDS}f=Iqc^o$Lt&O?CnHm zY)7mU6r{@bCUQlZ!+k5_EG2%-8*fZ`kl42K9~aUCb6ky&Gb>P6QZ<+l(<ME=t?Bo-MB-u>9E) zV{S7Ywe65fGdR1F!LW%@WtDfV(SWE)OetKAkBY#b$xw3`DaKNM#r`H{L~{ku^X}D# zwn!0+EEz7xDAR+-_e*`kLLxuSogA3yOP@G35Y>;@N~;i;YFAjVs93f8-0^?|^jFYy z%lh(acyqpyVCe43hdk|jHX2{R#W23@--EE!QSlE`W_-4o{+z%zhUzmtQyaBaaG4e_ zWM1m#KilmuHxCKu_(EsbN_$HGm_1HhWou^6ln6?}R~u<`}m`loUeIf z6I2dA##A3wr=;{NFq6#I#}%HLTu7N|c*oYgeKYdDG{r#Jr+szumC>Df9_oL*)j^PA zZjkZ1_6ugD=akkRpShX7#qbe^+nnjNwA2l3ezYPzNYuQja2ACh>yr|zJ}acIbZJmaysYW*h5R0nHKt&qm0QF=lkTvZ8b-=4O8!WqG} z*s5C|s-Wak%W$&I^-=gZs4+Q&gH{^+f+g~>)9!GyF67omX>$Xlb-g7`ILNn zVSSkqg&u*|-U|t$PE1i78=F*xM;;Jg#04;kHVIn2F>NI7zt?vT_u>ln#)s<@hHCVV zythsTm4*g}`6L^+U!5qgp>IRZyBewGBpc=UIWO_u4?z9He0{R1ba+e*HTjA|tDLQd zBi}3N+QlSs9(LLu#GD`YWKuYP*O|U7wFdto2PnBTzFPLxTg}dHttXCg7$L8%L?>WA z)8LWMjaiO>+m6=6n2k;Leh$AskDaY|z{nI{?Kta~muj?ndAVZVav`7s*uW)aLpxrv zgygiLUFqM)EDn3T&AP`MtPcFHipCcFRaM||5BUuK$!`PY=4-xm3s!!o%1$2>P!hF) zI9+Aa0`NSNxIfWL$Hn_!aLw#6(#+GA+#*3YDWu zNlx|;2-uX@drU(NGsq%Ae0+SOq7ze7;;gJT1F1dK`)q7%ot>Sku|NeSQ&ZDd^{#f# zq<{SJGE2N{@bcpuTZKU%s_g^Dn0tzlth}9mLsev#3ZGEO8}LEcQv6ttdePjk()IfH zGByTYP*giUGuXDGpBfGU*3O}f5fj?Wsjh2>v9^0&2aR5{?auGauI&Pbqmmaxf{-@I zF1F7&3bXmliD|r(%hd2NpGnQh8n*)0{IuA%#th_~=#%p$o*h*CbxOs4{$v`)sg-S_ zqw{NNNmqaTtn<$-*viUEPEJmBRaJ0ENKAAzOs&{JN?N+wnE?VKhJU>YESNf%EOP-t zetsW6zu~?S>tL~##YyLfb3%0sywv3;J zX)Bp5)s1M$Q)e26xSpx0uQ2lfA1+N{ap7W!15@I0scQ`m-@8;*@lQOWjx3{PCMSG)6#E!41Q2;DkZfhgnRYxyi z?;vk8Uu_|A*=SY43i9;JXyhi8JbWsZz`E7HyofdzFfKN5F*?HGWT6+5 zR7~>Fh57j`euKv}NF^FZy_R3d>SeFrB}i5L}nl zVv=+}ok~0yx0rh>VI|eIt5?g@@}&8_$szWWE`&9RS%@kUi?Fk*F>oY1QIbHWu4wcq z-|bAdlok`Kt*aA%Qd#>axrwlZzn#u|#;IGYOoYulstF@>bCRv2OF;*Tc&^S6goZ%oJx8b`R85vpd2HkJk#jt=piPff&3r%^#3#}1BIu< zBvDJPfMMK*YwQ&DT@2|hVxb?dmXVdk73$SkQUjP7{TG@3#q-V!j7lh(Wg3X=MjzTh z66Q+oOw%&rR7-T@;^Jb$>3&6dIVUJI^x6RtVzl9VBP>!;0IT=>c_*BjYixX+l10wk z!otPQ&d>^DxX(ZW$hp&)PI9;N;%p^hb93{}n>VL>=<2$<@{$rZ5IY#~gv!(7eKLmI zsx=U|*cvp@-+#=VeklkD+iV!_w&U=VBlP+XNjSgVGe-pxw%nB1AHa*sXi8C^W_3I~ zJP>jrnW+gtq0cQX83QKsuR_1WZlGWD@$Ab0nQVerfI~ir8EmCIi=)%^fyO>wh7dN%_;4LlRTe$2|6kABEYMn-mzMXtqtsUuf5=t1Jk zDfQDP(y(&!#`GXC(tm5Bn5Y^K4vwJHy&Tz~y8Qf=PYU4?u5GbvsXPSq0DboVx*D_8HItITG&%ahj`ne?|7I3@8Ar41D(sPtjSzk9J=c6Vz@h87*n2&>X$<_ z6sS^>;H#xq*`qtRR;hBPW+puJQv3S|x98!i(!A0hLI+%x7am-P-NTik4h@5ecxk zv{dj$Hu70$W_xDQq7i4=+L?OJ&7>FUr11#0&P#?!7?p;y9vnvC*S>S;BGt*Xzi&G~ zo(jX?^|UX%6V>m=ts3Ws5m|o8PCdYEXmIMcH{9FP*nu%INH)YW4>0cUkJ}F-+6MR0 z_0!3ZtWG{eQs#)$5+iy^$)|=>6Vbc7bLDf&u+oBMX5ZN46*wPDWBPiIW+{%e1O<40TJgo#ffGGoX-GoGs2NjZbWh!x;3XdL*M zI$uK&!@Pmzp&kG_jR>{KQ+EJJ-OpUJc^gyf230wfdUOo z(Y>RejXwu4#Eidj2(g!$^tSwJ#n1#ru69Od!5v#rlv#Y1mgjn4o8Zm0`E9GSU+9Wd z3P$PVq*U)ilTY%4Pu`sTTph;{zD*L%7J_+xT0}07GGtGQel3iCK3Skji2y$Rwkue3 z`?OKgaYzFZdNlh?!Z=Qgje39qHhNgy_BG8*R3ZSEdx|n070sLlmbDPVO3X_sr^W{A zRU18IfY~c=_&yr%3k5fGh^Ag$3#vit1qt%M`muY`Xr=Ny>({CC zQUwLh3^cYO8Z2mJ-rsf@FfrtZGVAHF8`p*x4L@?wIw_zu0^#Lwy}yk+pU(1y`ZL6I zb@*ShfT9solBfHPnX;`=9^bs?!P9=gAJIQC$wzIQEg6a z2{f75q{Fu9(FK{`JiH{^qGHm#=7^aIt&jlx?0tC<*x`QmUn85^2kJ5E+A-=5D=9fj zm8$N?1c;)Q$YUONbfV!7`{(ex;kdmxPu*7koeeJOHq*8PQQAS_E#DK9h)Y?g-k|0~ z5%LR6_KzQdiD9;HuSB1p^=2tvT*+wdv4h5Z+Pldv$NnIQo0>8_VCcWJ1V#z9`Z_r| zxwyDkTU%#|IgrXr?B_gfB^-k>{asaoUz4Wd&#i%_O2@Mpzny4|*hqo%0+`4%$;iny z{$Cz1rf}ve_&i9=!RuxY!|>pJ^#V{vjm8(-L<63x#LaKaNVkFQiL8FN9YXPL^GZDt z?+$7ME5!pZ+qLg)Q@5%VCPtS^o&O{&2i|gC3>AnyqMtT=AVg$7QCFg!B`l@G{zZJ( zm!`m%A+ll{e4$9i*ZdE0m6KfHD93@_<&-Sjvl%+88^<-%oIETiATK$&(Eck;_Oq;LcLro@~5v=Y-Ul(VDFVtcd**7F&ZBwe z_JR*9klZy-esBciVsIRV+jhPDe0lldU2%njC@wW4J}#9Lw&A|UwE6wU(e?Q~?V#1u z?@rsOD+|+$-}8c1#~cLIjDtSo|Mg|4nhvtY$UNuVQ`M zp*OYB#HL16LCGo^!&8^$auLW9D!nG*$`1Z9G^ifV6t!cTHKsHDoz@plB9(7FC>ywR zythvY4RG8Dv-wX3zkZI2M4kTV9nc_ibz&G6uB+)L%P+VSr&W)&PwX7mc9HWnfpo9* z`SzfecsnuI0~g(JH#fnbJYWsJU{V`k>FJC8-Czg5P9}8w>T}uM%+R}DbnpIQ!HXhS z$LDX4BckUKi`=@~HLumHZS(0pu$@5~6_+#@C$E+~UY#xaaG^!Ku42=$XM?5$dFQ&z zkoAbh6`8^SM>XOB0oyunf)vwx!Pc^knB$9L2oy ztk7$8*>}K%q!C%drD~HT#aZ~z#iqQr_8kgOIO~`&296yG}CsEJg@wW56(4_3(iq9RBJ+81g3ziJc9J4S+h?%LWVN$t)zP`By z$Hy0lkRHLa*0p;AJ$^!B7D2;;dpqW(g;NvQhihovR3Wg+m+Iv42Mpd6p3RmkJ+Xvv z5{WcTzdOXx=4_}t5dB5|sqx3t@!E@Hi$&hG4F6yNdEVw;) z+lH+=XLXl%VzK@HzmiTzcSE**`$bZS=6R!sVXJNSi<-XwGkl>0=b?`lqG9%#& R@wNh>uB@e0u4w)4KLB3T`i}qr diff --git a/doc/diagram/move2.dot b/doc/diagram/move2.dot index 9c63162..7037ea6 100644 --- a/doc/diagram/move2.dot +++ b/doc/diagram/move2.dot @@ -5,7 +5,6 @@ digraph { margin="0,0" ranksep=0.2 penwidth=0.5 - forcelabels=true node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5] edge [fontname="Inconsolata, Consolas", fontsize=10, arrowhead=normal] @@ -13,7 +12,7 @@ digraph { subgraph cluster1 { margin="10,10" labeljust="left" - label = "Before Copying" + label = "Before Copying (Hypothetic)" style=filled fillcolor=gray95 @@ -24,27 +23,26 @@ digraph { c12 [label="{|}"] c13 [shape="none", label="...", style="solid"] o1 [label="{o:object|}", fillcolor=3] + ghost [label="{o:object|}", style=invis] - c1 -> o1 [style="dashed", constraint=false, label="AddMember"] + c1 -> o1 [style="dashed", label="AddMember", constraint=false] edge [arrowhead=vee] c1 -> { c11; c12; c13 } + o1 -> ghost [style=invis] } subgraph cluster2 { margin="10,10" labeljust="left" - label = "After Copying" + label = "After Copying (Hypothetic)" style=filled fillcolor=gray95 node [shape=Mrecord, style=filled, colorscheme=spectral7] - { - rank = same - c2 [label="{contact:array|}", fillcolor=4] - c3 [label="{array|}", fillcolor=4] - } + c2 [label="{contact:array|}", fillcolor=4] + c3 [label="{array|}", fillcolor=4] c21 [label="{|}"] c22 [label="{|}"] c23 [shape=none, label="...", style="solid"] @@ -60,4 +58,5 @@ digraph { cs -> c3 [arrowhead=none] c3 -> { c31; c32; c33 } } + ghost -> o2 [style=invis] } \ No newline at end of file diff --git a/doc/diagram/move2.png b/doc/diagram/move2.png index a65966ec9e4a1a1793e519c55a0c7cc29f92c2f2..1d1f0bf532159dfb61bb28b2029de593383bb8f7 100644 GIT binary patch literal 26753 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 V32%I)nT_&*Vrywnzhusc{2!y7PWJ!+ literal 23536 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 z zCOw@OvklaEz~cb^T~SA87ElvF$vC`vq(%GUF$P>;5TfB3yImiMeK9AV_^rl9 zJYOc~(J@(yZ2GXFCILqQT*}qrPVo^f+?5$ddVR)sMTMD?3olR=u3$fU1TDDwQ#m;teH{g4-V-&Qz7yl4G@yR|NqOotSt^0wz^_Eg+ZJD5zt401_NTDjY&I74*hrVPA>SG_4~84{G7Ft zX>U`{cPvIKO)i>Bp9|v&`VWLgJ<#)B0l9oaNJw8Qce1VKc&1L>_~0<}$b_A__3R+1 zPS@0)O_xc(egrV%Lz~0IVxsN_jj`{INBi2_ZBH$AfeaGZMWxEXXOv(suZ)8wMPw8d z&(psXnIg}q6whtvwNm4aA@HOe3K;_UL_|b=tA)t8ql3M@dWMFIs;Uwa>vK>7N=h>? zFUqa0gM&o{?H2F*&Ed}T^Vj5()2f)A?pDX2vaC`-kD>4}fH8reKFySgE&__1P_S8m zifW^qxZD51&jXqT|J_pOV^*Jb2{bRB2C4|3k+<~)2jlKe@fEQkXf%n;`csdECyYJc zgjMfW998RPXtBA1hi45so-|A^AV!JHQ^Ui|e4dB%h5-w}OYblEz|Xn$l4)vA0a{MS z?Ps$V1-T~Eo(bq(JyDO}Cpq)s0ougD5e&n~($!QI*r=ydaT2Cw`dw-wo43h%U zV^g)-!S+OTf5IRNg7%+X{%~GW=`qBr6J$pCD$uQv^)2mla1aBKE#FTRTg)&aw<65U z9O&tF@$w|yTn_;v=slj5j*R4MRCi@HUWEW&)~wvzm7TXXyVI?zdDG?=Z6@_BypOGX zN)axbWRV02hzQ!VCCQUhTu^ZJzG;S?wxCZ8q&eE`rP0y3QjyQo-fF_wT_LscF-PV@ z1XE`_3k(cR2;e5ldH-&L%TCr`QMFxbH5NWotA8h~t`iTc8wBUBMsy2FLkdIc9Tp*8{rAY0^qD($RKPLz$}7pQfiVb{{Kv%m=CUvUfn$tK zla7u#vg(BT;V{h`<-$%wL9@b9cO@tXf<2_g5C(f3)UQk{J{A@bF=6G%1aE?|sL)Mu z7^_g=;eUk5MQ48a5P^g}ji68$b4UY2zHA8 z`%DxVr4uGd-afp+VNNIDts0*4F_^T+OvqwLe(?3{aCSaUP5|2LV0EQ(!#kZV~W0ZZbE!#W&^T7?%wHi-Ciqp6UltD$L3X{PioxsKcAhfgV3N z0@`G41N(O6Q#K8lti+@wQ91%7UfwHAvzeyaXQZan6>uO&ATq?_R+I1$?SW$5*xDr` zT|@QrYofGQ&}LRTd=^_$wbayy%bF3J1D4v&GIK1riwQ_yFiIFM13=`@@^=5yga=33HncOl^2z#cI1-?prX&mXBf ziK)Bde2F*F@Dz6+FF0T__$9<j*UZPCwzJ;Nb=T4g(GTH^=< zm-qHo01lDxEzs%q;dQ##*FW4}pP7pGOcY<_E8uGvFG--9rgDy5pVGdJLlh<(%6I^! z`~&HD#m%Z({Z^j~QF3yD7)gA5myO}{t5hIlMkY1w3MW22O<~znNA>v-3Obd5fci_g z9(99tT&Ib~p(!(d>H)Y8EadDH}D5E)7>#LB@-Gp5`2a z1|zLpz$H5|))q2PE`*bn4K=L|(Fa%3A&O66u_e(K1KLFHC1>HN&es0=zCPY44p;}+ha;#AgIPv zU(5=22O50L4e2L6lyBd{mY3hx6)zX{^mNeC9qjG3S-_$LD5>(EKNsJhU02VD5BhA# zKx<`h^HxGd{U>+-f}gGBUqk?utZD_!2?-{57j6`m#%CrbILXMeH1t`p0q6DvG(iy& z)!Ax3fp7+!)IE9J8$C5hIQvRp*9(-F{-XwmWP097#%w z_3Uf}2*&LkoD%?8tp&x#X5A8!?5e1!n8Kd#i$LKZs2u|(dxtA6kKY1~WO^#??r0=9 zH8mXT2N0vFbODQLrjI@>|G|F$lP>xHu2cSh`YimlsfkUZcZINrR#sVGKX{K$nCR~| zml5o_*H{UzyVbwHR1&J9YV$2VUT(}8%hXDTmV7m?i7&nWIr`!Lf>cV^r#OlbUVgy* z_&hpYaS+3{fZhwUGconR3aCyCj`I}_>#fGZfYhGo@QOnszIUeWbXs&w7E@irV8{Z7 z`kyDAs4|=T`qfp`68fkA=LLrXy)vc({N3%9?z2x^wu#SK&?Si}dX8bGxyr z+FSinON-~i_jLX}xG+dyb#!!QW*UPIX`vgg(YaQX&_5XM!+m{LqvBt(Xn-=;i^cb{ zM>W3;LzJfIl}O!C62Kl|&?Z6OOX<4)6(SHCA*@u2>2(fEOF^ijm-A^lK>bS+qzI3I zcx`iRiUTge%j$c1$!=lKQqEeNY5yGPKb$uP&Q?0Qt94Ou9zk9x>-!&})6=l4D~TY~ z$ajpWk5^dR#Odr@VCSwkhS5Z00LjEclUqbsV@Gr6c;GC0WX0z2($+{eEH;)6gc-Dd z)`2O(sMp}R&_r&C&%^a7l$3+lhH;sWfR5@k2!-YTJeHuKQEskb)*DGvn|D0zKoMoP zNWf(=I!Mz@Hi1 z4&Af0x-+GSYoiTLWnp2=tAF+pbXdrAIb+~`j{dadLNBn|b{R%fq6DGQSCCWMWEVGwWz_6KraF6wWw@WfcsjUR+<_Cx87)H?9>) zLZ2WV1oZi5CvP`at6!@6ZNCChB9m@!F14}gT?X%1d1mINO=>up?qq2tB_)2Byo}UT zP^K||yqdhWcIPm&V{dHcOB4fmJhLl9Z(Fpm3KXJdttyJ1VP++5T$JFlw~xrkT1$Io zF!`h!s9eX@eiCRWr|OWf#gK5Gm8LCh^SbzhI`mUm@W=VFF&kV0f>!svkR3e%%Qa zFE`iwKvjh^m-~}jL|-4&lgTS9dy#NnAa2B%h$oN|7`Zqf<1oFFm-fVdbNRWci3%3n z`{Z$;c&r?@IC$Pv)KX@*m+F<39#$y{G1NW?=|d7@uC}`iN2{9a8$}@@>EL_a_C|*a z$|@>=K3T|?daIDuL`$-a=~8aSKO=`~baL{=eGi(#=N1Nb{K6~i>R|ZpJGsVTI^S7v=!o^Qg2Ept9sN~$kp9G*!`v5_FMq#`?k#UJJ-gRO9k4jgxL^Lszh}XxmdtAnW?tRZgKV~pl++O? zC-X{qI;6!rSj(yNq^sXKL31sS0>hg(i! z`{;2Zx8tqp;t7in+^9J1Q4rw6!-d7gq}b&-fk7yakPcO;$jQxqCTaVhq_?4|32Llb z9323v!qI*wDK`!b1E8o*NEJbZfpb8bVr6T)VXZxwz=3&kLeriEg1DgEiMA~{w{E3r z_{Y^alnS9)4)7`DPOU)h@WGz??f7#0$=5lFXR-D9LIh4wR#7q9lBow~6gX8U$!K%n z54JRs*psOza{T!5Jt_ZM*2fhR)5S{0%_=E52`CMypk0aMV-O%dK0eqPC*mIg23KIOdb8_)?-VW6rGKHKpEpkA9|Ej6b8X_Fwn@-1lxGnE#ajr`C8m zt*4nEJehXp<-M+v&dyGBrHPg#Kg4)|J5G1F(5|kO5EA0d@p8mUTn{d)e_&v#!TOCG zIqmXqT;ARlAaA5(B@(GPFRy`pvUfU<93W<=92%-X9|J`L2_4uUe1vTt9V+E($IfBD zEI@q0)Br5NtY8<V+0k1VaMDvz|TDeM`|b-!+!JEWk4rdXJcxeNH0 zG%AI)45{W0%)jiFLkYh4u*I?tM& z1%;1-ynL+GrYz(a3JQO*Pc|_)3OXA8qpBJ*TwxYHoHw?i+L{oYcl-9po!~YmGYyP4 zb2PW4q~%%VM1DcR1~U1x`YVtn)EQ9uN{r<3mZw5r z)QCY}9%EEf->slL29YwBu+|8mRatrYh+hrOMG4i}J$saul)lAia(lz=taui=rhwL9 z9=z=;7#A^^+c%URqV4+pGR}ax+X>clIBmj=4rvSdAT<*BhX%~$gFi~CMk8(QxgCvYYr8omr?3(0+0;k;ZlQ((a{<{A6p#w zHXzri)LOEz9$AO_Nrx&OM_Lx@fF@(dj~w~qwRAgZU%N!^F4WwpFB`uB4o->Bfc!FQO{1nG(%=MU>^Z zuExin%FfR}iu-jVq2q3Lgg>7?eHx>&w`Yb-eIw?+K58GTD_ZLObgryEmCE;S)@twQ z$XmE=+cwj5ZGLWg@YrP7#p|X+0vE#}FAnzMVt!rA66MyfS<_!T&iwZE!aOH+7G0c? z90oJs(m<`fd2>Lv9<_2t0+&IFNVp^O<&sx*n*R zebq@P0DAy{(DaE*y>dkk=ix1LlOPPg6=)hLyN@r5XyK#`+bKl!YE3;_b zb1MgG8>iUtixpgFpF^O)zD3eZ0#`0HLUjQbdf6R2R&d|^Xh7dNNgl-czBwV&Q}dQ7 zt0<+_T}ep^0K<$b1&o2mYAXbds4H62jojs6xn6iX0)-)!Gv7{`KnLdbyN*s+wK-l~ zydMCJn3$NXtSn7)%ossBC}eSXgvS|n_uT&$ zl(5O}-RO(r)|8UzhIzwTAo(HpPj*YM0VCOKpMzG*Gd47qciM4I=vJOTw4iNKQvP8Z z6j5+ZfpB8`ox$^LZLd`~wysdd!idfdtmZ_yjW%WV?*gV6Xcz{nZq#oRd^0{i9_o73 zmi(}qj37n5o^O%+*25#3tH`3C$s^x@ky&@C^#p;!V))kMdF|fs{ClWN6!t{YXo3cH zcvQM}?eI#nsw$MNBbUsy7whKSym{{Y`P7x>{#gG^jE%npaS~p*4R=-E5!W@BfLWY3 zOhN}Y@@EwBUS8kf_Sf9c84n*^;Jq^Y{d4N9N6k&CTM>Qi+>H9>Ar!c}y86}FCFZ<* zX`1_bNAM)Ks;Y|1<)V2RXUsbiTxLvc>{8vJ@os-CZ&jUrK0|&r5HRcm_y*jK{1z`(@B#M`@k z{j7H((|nXIXmN4Se*7Hp($LVr!ZP5a-lmm_aX?#@XN!mc{YO){^AQnwl78I8t`QKn1$XY$p^O7EK07OG^XARK z)H*p{o;?q7w)tUT#Yd?WB4=}4+KpJg;?J+=vB`mpgP^>Ul!PS3luzPbSQVI8U7c$7 znZJaQyp5%#GF&Kfrqri2G=z0Z($>PF98`Kux3>FB8IH{LZcnQo!x#Nxz34NDYLTVH z;JtSHGv8Z{_KKaK^m)x>3M!1jd`>$$#sT^J`Xc(Ex44CFe}Mz{8Ww$boI0|W z(t>~}dI;W7SX6Xf-M7F!XPhis;5l!XvvWV>G$=m0u?yp8ewm10u0kGE;?cReS+7u8 z@RyAyt_TrWNC-YvCxMlk}bXSmFcpgll9)l*f2)Q+|tsO;neu+Jyd36Xpsm!s{(pwIq~K72W^Z&#V=p6fDHO=p)yzSJFMa1@bGZHo0xfHnGEWQ4i0yw_q`Vh zR0+A8K$JR%Po}>ToiZkVY}J@M0Er8qH++Xj)B82aVdk(50>M$sN6=TbWEBzx0>OF_ zf;fRtbb%x&1-{Xf6o}o2GouAkB@V`gGFKok1&RVeOTKYbe%*|mO5VPG3pi2w^tv%& ztrW`JhDGyrB;m!IFxJ?r3;@gff*6~H;e!1SG zb=0PXgitXg*Yv?eR~u2M^3Dix&&n=#Mj)QQEAg<6-~B_RWO{t_%^9z7l=uOoyaG72 zzg|o>B5U27?#1T*IuZtpb+2zf)qmAJZ4;~E?4B{L{(fgprZSzCzsWnBH>9aJ#<&1Y9h7TQDvqJ%&lG0{FYZ&i zv-jY`pr2vFBA~u=wf9Rr-7xRs^4!2RW}>Z3W-!85vO{oZhn4KFTXs_5Bq#CpA=N>H zsC;Yck`q+Yi8&lkxR|K3vDPg7upm`&z4tovk_m71jUGep&R~C zd!X<(*yLthu(<&*(j^W;K$jslj9iU=8nUCFN&Ef_O=A zhJE1z^YG(=&iJ1z6Fh5HM`Z!9|B0=>R~^5i(joPi%Z0DXj-InRLL30bD##Qdy>xNO zR)1CKr(ZpC7EAhJcXu@0@q-TWp;+k5J!uI=6X&D}s=wCh=^r+L`n!?#r)+Xb3z_<( zrkfN|(&>Tuey0{yY&Dx+HrZ-KggB;-$0|hn`{R_{udk6#NS;}LC916-Q8-1>me`Yj z7#gB{tzU9UVQ*AS3^Kl`tQ3xY=IB|_wFfLMS3<9ZSc^5pbno7+@={BGeJVvqd@62i z8tH&9#6noLt@iJa?D1b46yn#+*O1jmsv^Ly_r%a#xJrKyKwolRuNtogAt2}$BDs}6 zBEvuW+J6fWzg#p(cw=umGC3^DO>yYF9FhZdML_|}K?|Wt5M7=q3Y3%odjR@}5b%$~ anv~oeUXj}u&-cNf5Ox`u>KE%ep8YrU-&Mf? diff --git a/doc/diagram/move3.dot b/doc/diagram/move3.dot index 4c2177d..c197b99 100644 --- a/doc/diagram/move3.dot +++ b/doc/diagram/move3.dot @@ -22,13 +22,15 @@ digraph { c1 [label="{contact:array|}", fillcolor=4] c11 [label="{|}"] c12 [label="{|}"] - c13 [shape=none, label="...", style="none"] + c13 [shape=none, label="...", style="solid"] o1 [label="{o:object|}", fillcolor=3] + ghost [label="{o:object|}", style=invis] c1 -> o1 [style="dashed", constraint=false, label="AddMember"] edge [arrowhead=vee] c1 -> { c11; c12; c13 } + o1 -> ghost [style=invis] } subgraph cluster2 { @@ -40,7 +42,6 @@ digraph { node [shape=Mrecord, style=filled, colorscheme=spectral7] - rank = same c2 [label="{contact:null|}", fillcolor=1] c3 [label="{array|}", fillcolor=4] c21 [label="{|}"] @@ -48,10 +49,12 @@ digraph { c23 [shape="none", label="...", style="solid"] o2 [label="{o:object|}", fillcolor=3] cs [label="{string|\"contact\"}", fillcolor=5] + c2 -> o2 [style="dashed", constraint=false, label="AddMember", style=invis] edge [arrowhead=vee] c3 -> { c21; c22; c23 } o2 -> cs cs -> c3 [arrowhead=none] } + ghost -> o2 [style=invis] } \ No newline at end of file diff --git a/doc/diagram/move3.png b/doc/diagram/move3.png index f666acad9778897ad4410fb6403b635fa398509d..a52ad46de7ae75df223a7a03ece5a78fa82f6d92 100644 GIT binary patch literal 22630 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 B_q6~3 literal 22932 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 X(UsKK_3zPUnP6gQwm-|@GetInt()); ``` -And other familar query functions: +And other familiar query functions: * `SizeType Capacity() const` * `bool Empty() const` -### Quering Object +### Query Object Similar to array, we can iterate object members by iterator: @@ -196,7 +196,7 @@ Checking | Obtaining `bool IsInt64()` | `int64_t GetInt64()` `bool IsDouble()` | `double GetDouble()` -Note that, an integer value may be obtained in various ways without conversion. For example, A value `x` containing 123 will make `x.IsInt() == x.IsUint() == x.IsInt64() == x.IsUint64() == ture`. But a value `y` containing -3000000000 will only makes `x.IsInt64() == true`. +Note that, an integer value may be obtained in various ways without conversion. For example, A value `x` containing 123 will make `x.IsInt() == x.IsUint() == x.IsInt64() == x.IsUint64() == true`. But a value `y` containing -3000000000 will only makes `x.IsInt64() == true`. When obtaining the numeric values, `GetDouble()` will convert internal integer representation to a `double`. Note that, `int` and `uint` can be safely convert to `double`, but `int64_t` and `uint64_t` may lose precision (since mantissa of `double` is only 52-bits). @@ -204,7 +204,7 @@ When obtaining the numeric values, `GetDouble()` will convert internal integer r In addition to `GetString()`, the `Value` class also contains `GetStringLength()`. Here explains why. -According to RFC 4627, JSON strings can contain unicode character `U+0000`, which must be escaped as `"\u0000"`. The problem is that, C/C++ often uses null-terminated string, which treats ``\0'` as the terminator symbol. +According to RFC 4627, JSON strings can contain Unicode character `U+0000`, which must be escaped as `"\u0000"`. The problem is that, C/C++ often uses null-terminated string, which treats ``\0'` as the terminator symbol. To conform RFC 4627, RapidJSON supports string containing `U+0000`. If you need to handle this, you can use `GetStringLength()` API to obtain the correct length of string. @@ -337,7 +337,7 @@ In this example, we get the allocator from a `Document` instance. This is a comm Besides, the above `SetString()` requires length. This can handle null characters within a string. There is another `SetString()` overloaded function without the length parameter. And it assumes the input is null-terminated and calls a `strlen()`-like function to obtain the length. -Finally, for literal string or string with safe life-cycle can use const-string version of `SetString()`, which lacks alloactor parameter: +Finally, for literal string or string with safe life-cycle can use const-string version of `SetString()`, which lacks allocator parameter: ```cpp Value s; @@ -426,11 +426,11 @@ Swapping two DOM trees is fast (constant time), despite the complexity of the tr This tutorial shows the basics of DOM tree query and manipulation. There are several important concepts in RapidJSON: -1. [Streams](stream.md) are channels for reading/writing JSON, which can be a in-memory string, or file stream, etc. Uesr can also create their streams. +1. [Streams](stream.md) are channels for reading/writing JSON, which can be a in-memory string, or file stream, etc. User can also create their streams. 2. [Encoding](encoding.md) defines which character set is used in streams and memory. RapidJSON also provide Unicode conversion/validation internally. -3. [DOM](dom.md)'s basics are already covered in this tutorial. Uncover more advanced features such as insitu-parsing, other parsing options and advanced usages. +3. [DOM](dom.md)'s basics are already covered in this tutorial. Uncover more advanced features such as *in situ* parsing, other parsing options and advanced usages. 4. [SAX](sax.md) is the foundation of parsing/generating facility in RapidJSON. Learn how to use `Reader`/`Writer` to implement even faster applications. Also try `PrettyWriter` to format the JSON. -5. [Performance](performance.md) shows some in-house and thirdparty benchmarks. +5. [Performance](performance.md) shows some in-house and third-party benchmarks. 6. [Implementation](implementation.md) describes some internal designs and techniques of RapidJSON. You may also refer to the FAQ, API documentation, examples and unit tests.