digraph {
node [shape=Mrecord];
Ryu [ label = "{Ryu}" ];
Ryu_Source [ label = "{Ryu::Source}" ];
Ryu_Sink [ label = "{Ryu::Sink}" ];
Ryu_Transform [ label = "{Ryu::Transform}" ];
Ryu_Transform_Codec [ label = "{Ryu::Transform::Codec}" ];
Ryu_Stream [ label = "{Ryu::Stream|<chunk_size> +chunk_size\l|<encode> +encode\l|<decode> +decode\l}" ];
Ryu_Transform_String_ChunkSize [ label = "{Ryu::Transform::String::ChunkSize}" ];
Ryu_Transform_String_ChunkSize -> Ryu_Stream:chunk_size;
Ryu_Stream:encode -> Ryu_Transform_Codec;
Ryu_Stream:decode -> Ryu_Transform_Codec;
Ryu_Transform -> Ryu_Transform_Codec;
Ryu_Transform -> Ryu_Transform_String_ChunkSize;
Ryu_Source -> Ryu_Transform;
Ryu_Sink -> Ryu_Transform;
}