{"action":"created","comment":{"url":"https://api.github.com/repos/seqan/seqan3/pulls/comments/180426641","pull_request_review_id":110842759,"id":180426641,"diff_hunk":"@@ -0,0 +1,546 @@\n+// ============================================================================\n+//                 SeqAn - The Library for Sequence Analysis\n+// ============================================================================\n+//\n+// Copyright (c) 2006-2018, Knut Reinert & Freie Universitaet Berlin\n+// Copyright (c) 2016-2018, Knut Reinert & MPI Molekulare Genetik\n+// All rights reserved.\n+//\n+// Redistribution and use in source and binary forms, with or without\n+// modification, are permitted provided that the following conditions are met:\n+//\n+//     * Redistributions of source code must retain the above copyright\n+//       notice, this list of conditions and the following disclaimer.\n+//     * Redistributions in binary form must reproduce the above copyright\n+//       notice, this list of conditions and the following disclaimer in the\n+//       documentation and/or other materials provided with the distribution.\n+//     * Neither the name of Knut Reinert or the FU Berlin nor the names of\n+//       its contributors may be used to endorse or promote products derived\n+//       from this software without specific prior written permission.\n+//\n+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n+// ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE\n+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\n+// DAMAGE.\n+//\n+// ============================================================================\n+\n+/*!\\file\n+ * \\brief Contains basic data structure for strong types.\n+ * \\author Rene Rahn <rene.rahn AT fu-berlin.de>\n+ */\n+\n+#pragma once\n+\n+#include <type_traits>\n+\n+#include <seqan3/core/add_enum_bitwise_operators.hpp>\n+#include <seqan3/core/concept/core.hpp>\n+#include <seqan3/core/metafunction/basic.hpp>\n+\n+namespace seqan3::detail\n+{\n+\n+/*!\\brief Enum class for all supported operations that can be added to a seqan3::detail::strong_type.\n+ * \\ingroup core\n+ */\n+enum struct skill\n+{\n+    none           = 0,\n+    add            = 1 << 0,\n+    subtract       = 1 << 1,\n+    multiply       = 1 << 2,\n+    divide         = 1 << 3,\n+    modulo         = 1 << 4,\n+    bitwise_and    = 1 << 5,\n+    bitwise_or     = 1 << 6,\n+    bitwise_xor    = 1 << 7,\n+    bitwise_not    = 1 << 8,\n+    bitwise_lshift = 1 << 9,\n+    bitwise_rshift = 1 << 10,\n+    logical_and    = 1 << 11,\n+    logical_or     = 1 << 12,\n+    logical_not    = 1 << 13,\n+    increment      = 1 << 14,\n+    decrement      = 1 << 15,\n+    convert        = 1 << 16,\n+    additive       = add | subtract,\n+    multiplicative = multiply | divide | modulo,\n+    bitwise_logic  = bitwise_and | bitwise_or | bitwise_xor | bitwise_not,\n+    bitwise_shift  = bitwise_lshift | bitwise_rshift,\n+    logic          = logical_and | logical_or | logical_not\n+};\n+}  //namespace seqan3::detail\n+\n+namespace seqan3\n+{\n+//!\\cond\n+template <>\n+constexpr bool add_enum_bitwise_operators<seqan3::detail::skill> = true;\n+//!\\endcond\n+}\n+\n+namespace seqan3::detail\n+{\n+\n+/*!\\brief Defines an internal concept to check the binary operator for the seqan3::detail::strong_type skills.\n+ * \\ingroup core\n+ * \\attention This concept definition is necessary, since gcc has a bug that prevents us from defining these\n+ * requirements within the requires clause of the respective operator.\n+ */\n+#define SEQAN3_DEFINE_BINARY_OPERATOR_CONCEPT(concept_name, operator_name)                                             \\\n+template <typename t>                                                                                                  \\\n+concept bool concept_name = requires(t v1, t v2)                                                                       \\\n+{                                                                                                                      \\\n+    { v1 operator_name v2 } -> t;                                                                                      \\\n+}\n+\n+/*!\\brief Defines an internal concept to check the unary operator for the seqan3::detail::strong_type skills.\n+ * \\ingroup core\n+ * \\attention This concept definition is necessary, since gcc has a bug that prevents us from defining these\n+ * requirements within the requires clause of the respective operator.\n+ */\n+#define SEQAN3_DEFINE_UNARY_OPERATOR_CONCEPT(concept_name, operator_name)                                              \\\n+template <typename t>                                                                                                  \\\n+concept bool concept_name = requires(t v1)                                                                             \\\n+{                                                                                                                      \\\n+    { operator_name v1 } -> t;                                                                                         \\\n+}\n+\n+//!\\cond\n+SEQAN3_DEFINE_BINARY_OPERATOR_CONCEPT(_skill_add_concept,             +);\n+SEQAN3_DEFINE_BINARY_OPERATOR_CONCEPT(_skill_subtract_concept,        -);\n+SEQAN3_DEFINE_BINARY_OPERATOR_CONCEPT(_skill_multiply_concept,        *);\n+SEQAN3_DEFINE_BINARY_OPERATOR_CONCEPT(_skill_divide_concept,          /);\n+SEQAN3_DEFINE_BINARY_OPERATOR_CONCEPT(_skill_modulo_concept,          %);\n+SEQAN3_DEFINE_BINARY_OPERATOR_CONCEPT(_skill_bitwise_and_concept,     &);\n+SEQAN3_DEFINE_BINARY_OPERATOR_CONCEPT(_skill_bitwise_or_concept,      |);\n+SEQAN3_DEFINE_BINARY_OPERATOR_CONCEPT(_skill_bitwise_xor_concept,     ^);\n+SEQAN3_DEFINE_BINARY_OPERATOR_CONCEPT(_skill_bitwise_lshift_concept, <<);\n+SEQAN3_DEFINE_BINARY_OPERATOR_CONCEPT(_skill_bitwise_rshift_concept, >>);\n+SEQAN3_DEFINE_UNARY_OPERATOR_CONCEPT (_skill_bitwise_not_concept,     ~);\n+SEQAN3_DEFINE_BINARY_OPERATOR_CONCEPT(_skill_logical_and_concept,    &&);\n+SEQAN3_DEFINE_BINARY_OPERATOR_CONCEPT(_skill_logical_or_concept,     ||);\n+SEQAN3_DEFINE_UNARY_OPERATOR_CONCEPT (_skill_logical_not_concept,     !);\n+SEQAN3_DEFINE_UNARY_OPERATOR_CONCEPT (_skill_incrementable_concept,   ++);\n+SEQAN3_DEFINE_UNARY_OPERATOR_CONCEPT (_skill_decrementable_concept,   --);\n+//!\\endcond\n+\n+ //!\\cond\n+template <typename strong_type, skill skills>\n+struct skills_base;\n+//!\\endcond\n+\n+//!\\cond\n+template <typename unnamed_type, typename name_tag, skill skills>\n+class strong_type;\n+//!\\endcond\n+\n+/*!\\brief A base class for all skills addable to a seqan3::detail::strong_type\n+ * \\ingroup core\n+ * \\tparam seqan3::detail::strong_type The strong type to be extended with a skill.\n+ * \\tparam seqan3::detail::skill       A set of skills that should be added to the associated strong type.\n+ *\n+ * \\details\n+ *\n+ * This base class adds dependent on the selected seqan3::detail::skill the corresponding\n+ * operator to the seqan3::detail::strong_type as long as the underlying type supports the same\n+ * operator. If this is not the case, a compiler error will be emitted.\n+ */\n+template <typename unnamed_type, typename named_tag, skill skills>\n+struct skills_base<strong_type<unnamed_type, named_tag, skills>, skills>\n+{\n+private:\n+    //!\\brief A typedef for the associated strong_type.\n+    using strong_type_ = strong_type<unnamed_type, named_tag, skills>;\n+\n+public:\n+    /*!\\name Arithmetic additive operators.\n+     * \\{\n+     */\n+    //!\\brief Adds addition operator to the strong type.\n+    constexpr auto operator+(strong_type_ const & other)\n+        //!\\cond\n+        requires ((skills & skill::add) != skill::none) &&\n+                 _skill_add_concept<unnamed_type>\n+        //!\\endcond\n+    {\n+        return strong_type_{this->underlying().get() + other.get()};\n+    }\n+\n+    //!\\brief Adds subtraction operator to the strong type.\n+    constexpr auto operator-(strong_type_ const & other)\n+        //!\\cond\n+        requires ((skills & skill::subtract) != skill::none) &&\n+                 _skill_subtract_concept<unnamed_type>\n+        //!\\endcond\n+    {\n+        return strong_type_{this->underlying().get() - other.get()};\n+    }\n+    //!\\}\n+\n+    /*!\\name Arithmetic multiplicative operators.\n+     * \\{\n+     */\n+    //!\\brief Adds multiplication operator to the strong type.\n+    constexpr auto operator*(strong_type_ const & other)\n+        //!\\cond\n+        requires ((skills & skill::multiply) != skill::none) &&\n+                 _skill_multiply_concept<unnamed_type>\n+        //!\\endcond\n+    {\n+        return strong_type_{this->underlying().get() * other.get()};\n+    }\n+\n+    //!\\brief Adds division operator to the strong type.\n+    constexpr auto operator/(strong_type_ const & other)\n+        //!\\cond\n+        requires ((skills & skill::divide) != skill::none) &&\n+                 _skill_divide_concept<unnamed_type>\n+        //!\\endcond\n+    {\n+        return strong_type_{this->underlying().get() / other.get()};\n+    }\n+\n+    //!\\brief Adds modulo operator to the strong type.\n+    constexpr auto operator%(strong_type_ const & other)\n+        //!\\cond\n+        requires ((skills & skill::modulo) != skill::none) &&\n+                _skill_modulo_concept<unnamed_type>\n+        //!\\endcond\n+    {\n+        return strong_type_{this->underlying().get() % other.get()};\n+    }\n+    //!\\}\n+\n+    /*!\\name Bitwise logic operators.\n+     * \\{\n+     */\n+\n+    //!\\brief Adds bitwise and operator to the strong type.\n+    constexpr auto operator&(strong_type_ const & other)\n+        //!\\cond\n+        requires ((skills & skill::bitwise_and) != skill::none) &&\n+                 _skill_bitwise_and_concept<unnamed_type>\n+        //!\\endcond\n+    {\n+        return strong_type_{this->underlying().get() & other.get()};\n+    }\n+\n+    //!\\brief Adds bitwise or operator to the strong type.\n+    constexpr auto operator|(strong_type_ const & other)\n+        //!\\cond\n+        requires ((skills & skill::bitwise_or) != skill::none) &&\n+                 _skill_bitwise_or_concept<unnamed_type>\n+        //!\\endcond\n+    {\n+        return strong_type_{this->underlying().get() | other.get()};\n+    }\n+\n+    //!\\brief Adds bitwise xor operator to the strong type.\n+    constexpr auto operator^(strong_type_ const & other)\n+        //!\\cond\n+        requires ((skills & skill::bitwise_xor) != skill::none) &&\n+                 _skill_bitwise_xor_concept<unnamed_type>\n+        //!\\endcond\n+    {\n+        return strong_type_{this->underlying().get() ^ other.get()};\n+    }\n+\n+    //!\\brief Adds bitwise not operator to the strong type.\n+    constexpr auto operator~()\n+        //!\\cond\n+        requires ((skills & skill::bitwise_not) != skill::none) &&\n+                 _skill_bitwise_not_concept<unnamed_type>\n+        //!\\endcond\n+    {\n+        return strong_type_{~this->underlying().get()};\n+    }\n+    //!\\}\n+\n+    /*!\\name Bitwise shift operators.\n+     * \\{\n+     */\n+\n+    //!\\brief Adds bitwise left shift operator to the strong type.\n+    constexpr auto operator<<(strong_type_ const & other)\n+        //!\\cond\n+        requires ((skills & skill::bitwise_lshift) != skill::none) &&\n+                 _skill_bitwise_lshift_concept<unnamed_type>\n+        //!\\endcond\n+    {\n+        return strong_type_{this->underlying().get() << other.get()};\n+    }\n+\n+    //!\\brief Adds bitwise left shift operator to the strong type.\n+    constexpr auto operator<<(integral_concept const shift)\n+        //!\\cond\n+        requires ((skills & skill::bitwise_lshift) != skill::none) &&\n+                 _skill_bitwise_lshift_concept<unnamed_type>\n+        //!\\endcond\n+    {\n+        return strong_type_{this->underlying().get() << shift};\n+    }\n+\n+    //!\\brief Adds bitwise right shift operator to the strong type.\n+    constexpr auto operator>>(strong_type_ const & other)\n+        //!\\cond\n+        requires ((skills & skill::bitwise_rshift) != skill::none) &&\n+                 _skill_bitwise_rshift_concept<unnamed_type>\n+        //!\\endcond\n+    {\n+        return strong_type_{this->underlying().get() >> other.get()};\n+    }\n+\n+    //!\\brief Adds bitwise right shift operator to the strong type.\n+    constexpr auto operator>>(integral_concept const shift)\n+        //!\\cond\n+        requires ((skills & skill::bitwise_rshift) != skill::none) &&\n+                 _skill_bitwise_rshift_concept<unnamed_type>\n+        //!\\endcond\n+    {\n+        return strong_type_{this->underlying().get() >> shift};\n+    }\n+    //!\\}\n+\n+    /*!\\name Logical operators.\n+     * \\{\n+     */\n+\n+    //!\\brief Adds logical and operator to the strong type.\n+    constexpr auto operator&&(strong_type_ const & other)\n+        //!\\cond\n+        requires ((skills & skill::logical_and) != skill::none) &&\n+                 _skill_logical_and_concept<unnamed_type>\n+        //!\\endcond\n+    {\n+        return strong_type_{this->underlying().get() && other.get()};","path":"include/seqan3/core/detail/strong_type.hpp","position":324,"original_position":324,"commit_id":"852d61edb5c6b66bc72fb48ad76ac633169d8a9c","original_commit_id":"852d61edb5c6b66bc72fb48ad76ac633169d8a9c","user":{"login":"rrahn","id":1529364,"avatar_url":"https://avatars2.githubusercontent.com/u/1529364?v=4","gravatar_id":"","url":"https://api.github.com/users/rrahn","html_url":"https://github.com/rrahn","followers_url":"https://api.github.com/users/rrahn/followers","following_url":"https://api.github.com/users/rrahn/following{/other_user}","gists_url":"https://api.github.com/users/rrahn/gists{/gist_id}","starred_url":"https://api.github.com/users/rrahn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rrahn/subscriptions","organizations_url":"https://api.github.com/users/rrahn/orgs","repos_url":"https://api.github.com/users/rrahn/repos","events_url":"https://api.github.com/users/rrahn/events{/privacy}","received_events_url":"https://api.github.com/users/rrahn/received_events","type":"User","site_admin":false},"body":"done","created_at":"2018-04-10T13:47:48Z","updated_at":"2018-04-10T13:47:48Z","html_url":"https://github.com/seqan/seqan3/pull/224#discussion_r180426641","pull_request_url":"https://api.github.com/repos/seqan/seqan3/pulls/224","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/seqan/seqan3/pulls/comments/180426641"},"html":{"href":"https://github.com/seqan/seqan3/pull/224#discussion_r180426641"},"pull_request":{"href":"https://api.github.com/repos/seqan/seqan3/pulls/224"}},"in_reply_to_id":178018828},"pull_request":{"url":"https://api.github.com/repos/seqan/seqan3/pulls/224","id":177843474,"html_url":"https://github.com/seqan/seqan3/pull/224","diff_url":"https://github.com/seqan/seqan3/pull/224.diff","patch_url":"https://github.com/seqan/seqan3/pull/224.patch","issue_url":"https://api.github.com/repos/seqan/seqan3/issues/224","number":224,"state":"open","locked":false,"title":"[FEATURE] Add strong type.","user":{"login":"rrahn","id":1529364,"avatar_url":"https://avatars2.githubusercontent.com/u/1529364?v=4","gravatar_id":"","url":"https://api.github.com/users/rrahn","html_url":"https://github.com/rrahn","followers_url":"https://api.github.com/users/rrahn/followers","following_url":"https://api.github.com/users/rrahn/following{/other_user}","gists_url":"https://api.github.com/users/rrahn/gists{/gist_id}","starred_url":"https://api.github.com/users/rrahn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rrahn/subscriptions","organizations_url":"https://api.github.com/users/rrahn/orgs","repos_url":"https://api.github.com/users/rrahn/repos","events_url":"https://api.github.com/users/rrahn/events{/privacy}","received_events_url":"https://api.github.com/users/rrahn/received_events","type":"User","site_admin":false},"body":"Finally the first PR for this.\r\n\r\nAdds strong_types and skills for strong_types.","created_at":"2018-03-27T19:37:14Z","updated_at":"2018-04-10T13:47:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3f81996746ab9ab12d887e98404a81fb16e67154","assignee":{"login":"h-2","id":2996863,"avatar_url":"https://avatars2.githubusercontent.com/u/2996863?v=4","gravatar_id":"","url":"https://api.github.com/users/h-2","html_url":"https://github.com/h-2","followers_url":"https://api.github.com/users/h-2/followers","following_url":"https://api.github.com/users/h-2/following{/other_user}","gists_url":"https://api.github.com/users/h-2/gists{/gist_id}","starred_url":"https://api.github.com/users/h-2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/h-2/subscriptions","organizations_url":"https://api.github.com/users/h-2/orgs","repos_url":"https://api.github.com/users/h-2/repos","events_url":"https://api.github.com/users/h-2/events{/privacy}","received_events_url":"https://api.github.com/users/h-2/received_events","type":"User","site_admin":false},"assignees":[{"login":"h-2","id":2996863,"avatar_url":"https://avatars2.githubusercontent.com/u/2996863?v=4","gravatar_id":"","url":"https://api.github.com/users/h-2","html_url":"https://github.com/h-2","followers_url":"https://api.github.com/users/h-2/followers","following_url":"https://api.github.com/users/h-2/following{/other_user}","gists_url":"https://api.github.com/users/h-2/gists{/gist_id}","starred_url":"https://api.github.com/users/h-2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/h-2/subscriptions","organizations_url":"https://api.github.com/users/h-2/orgs","repos_url":"https://api.github.com/users/h-2/repos","events_url":"https://api.github.com/users/h-2/events{/privacy}","received_events_url":"https://api.github.com/users/h-2/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"smehringer","id":7955878,"avatar_url":"https://avatars3.githubusercontent.com/u/7955878?v=4","gravatar_id":"","url":"https://api.github.com/users/smehringer","html_url":"https://github.com/smehringer","followers_url":"https://api.github.com/users/smehringer/followers","following_url":"https://api.github.com/users/smehringer/following{/other_user}","gists_url":"https://api.github.com/users/smehringer/gists{/gist_id}","starred_url":"https://api.github.com/users/smehringer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smehringer/subscriptions","organizations_url":"https://api.github.com/users/smehringer/orgs","repos_url":"https://api.github.com/users/smehringer/repos","events_url":"https://api.github.com/users/smehringer/events{/privacy}","received_events_url":"https://api.github.com/users/smehringer/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":568314043,"url":"https://api.github.com/repos/seqan/seqan3/labels/feature/proposal","name":"feature/proposal","color":"0e8a16","default":false}],"milestone":{"url":"https://api.github.com/repos/seqan/seqan3/milestones/6","html_url":"https://github.com/seqan/seqan3/milestone/6","labels_url":"https://api.github.com/repos/seqan/seqan3/milestones/6/labels","id":3212935,"number":6,"title":"Pre-easter","description":"","creator":{"login":"h-2","id":2996863,"avatar_url":"https://avatars2.githubusercontent.com/u/2996863?v=4","gravatar_id":"","url":"https://api.github.com/users/h-2","html_url":"https://github.com/h-2","followers_url":"https://api.github.com/users/h-2/followers","following_url":"https://api.github.com/users/h-2/following{/other_user}","gists_url":"https://api.github.com/users/h-2/gists{/gist_id}","starred_url":"https://api.github.com/users/h-2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/h-2/subscriptions","organizations_url":"https://api.github.com/users/h-2/orgs","repos_url":"https://api.github.com/users/h-2/repos","events_url":"https://api.github.com/users/h-2/events{/privacy}","received_events_url":"https://api.github.com/users/h-2/received_events","type":"User","site_admin":false},"open_issues":10,"closed_issues":4,"state":"open","created_at":"2018-03-23T17:42:05Z","updated_at":"2018-04-10T10:11:57Z","due_on":"2018-03-29T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/seqan/seqan3/pulls/224/commits","review_comments_url":"https://api.github.com/repos/seqan/seqan3/pulls/224/comments","review_comment_url":"https://api.github.com/repos/seqan/seqan3/pulls/comments{/number}","comments_url":"https://api.github.com/repos/seqan/seqan3/issues/224/comments","statuses_url":"https://api.github.com/repos/seqan/seqan3/statuses/852d61edb5c6b66bc72fb48ad76ac633169d8a9c","head":{"label":"rrahn:feature/strong_types","ref":"feature/strong_types","sha":"852d61edb5c6b66bc72fb48ad76ac633169d8a9c","user":{"login":"rrahn","id":1529364,"avatar_url":"https://avatars2.githubusercontent.com/u/1529364?v=4","gravatar_id":"","url":"https://api.github.com/users/rrahn","html_url":"https://github.com/rrahn","followers_url":"https://api.github.com/users/rrahn/followers","following_url":"https://api.github.com/users/rrahn/following{/other_user}","gists_url":"https://api.github.com/users/rrahn/gists{/gist_id}","starred_url":"https://api.github.com/users/rrahn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rrahn/subscriptions","organizations_url":"https://api.github.com/users/rrahn/orgs","repos_url":"https://api.github.com/users/rrahn/repos","events_url":"https://api.github.com/users/rrahn/events{/privacy}","received_events_url":"https://api.github.com/users/rrahn/received_events","type":"User","site_admin":false},"repo":{"id":85306117,"name":"seqan3","full_name":"rrahn/seqan3","owner":{"login":"rrahn","id":1529364,"avatar_url":"https://avatars2.githubusercontent.com/u/1529364?v=4","gravatar_id":"","url":"https://api.github.com/users/rrahn","html_url":"https://github.com/rrahn","followers_url":"https://api.github.com/users/rrahn/followers","following_url":"https://api.github.com/users/rrahn/following{/other_user}","gists_url":"https://api.github.com/users/rrahn/gists{/gist_id}","starred_url":"https://api.github.com/users/rrahn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rrahn/subscriptions","organizations_url":"https://api.github.com/users/rrahn/orgs","repos_url":"https://api.github.com/users/rrahn/repos","events_url":"https://api.github.com/users/rrahn/events{/privacy}","received_events_url":"https://api.github.com/users/rrahn/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rrahn/seqan3","description":"The modern C++ library for sequence analysis. Contains version 3 of the library and API docs.","fork":true,"url":"https://api.github.com/repos/rrahn/seqan3","forks_url":"https://api.github.com/repos/rrahn/seqan3/forks","keys_url":"https://api.github.com/repos/rrahn/seqan3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rrahn/seqan3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rrahn/seqan3/teams","hooks_url":"https://api.github.com/repos/rrahn/seqan3/hooks","issue_events_url":"https://api.github.com/repos/rrahn/seqan3/issues/events{/number}","events_url":"https://api.github.com/repos/rrahn/seqan3/events","assignees_url":"https://api.github.com/repos/rrahn/seqan3/assignees{/user}","branches_url":"https://api.github.com/repos/rrahn/seqan3/branches{/branch}","tags_url":"https://api.github.com/repos/rrahn/seqan3/tags","blobs_url":"https://api.github.com/repos/rrahn/seqan3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rrahn/seqan3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rrahn/seqan3/git/refs{/sha}","trees_url":"https://api.github.com/repos/rrahn/seqan3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rrahn/seqan3/statuses/{sha}","languages_url":"https://api.github.com/repos/rrahn/seqan3/languages","stargazers_url":"https://api.github.com/repos/rrahn/seqan3/stargazers","contributors_url":"https://api.github.com/repos/rrahn/seqan3/contributors","subscribers_url":"https://api.github.com/repos/rrahn/seqan3/subscribers","subscription_url":"https://api.github.com/repos/rrahn/seqan3/subscription","commits_url":"https://api.github.com/repos/rrahn/seqan3/commits{/sha}","git_commits_url":"https://api.github.com/repos/rrahn/seqan3/git/commits{/sha}","comments_url":"https://api.github.com/repos/rrahn/seqan3/comments{/number}","issue_comment_url":"https://api.github.com/repos/rrahn/seqan3/issues/comments{/number}","contents_url":"https://api.github.com/repos/rrahn/seqan3/contents/{+path}","compare_url":"https://api.github.com/repos/rrahn/seqan3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rrahn/seqan3/merges","archive_url":"https://api.github.com/repos/rrahn/seqan3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rrahn/seqan3/downloads","issues_url":"https://api.github.com/repos/rrahn/seqan3/issues{/number}","pulls_url":"https://api.github.com/repos/rrahn/seqan3/pulls{/number}","milestones_url":"https://api.github.com/repos/rrahn/seqan3/milestones{/number}","notifications_url":"https://api.github.com/repos/rrahn/seqan3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rrahn/seqan3/labels{/name}","releases_url":"https://api.github.com/repos/rrahn/seqan3/releases{/id}","deployments_url":"https://api.github.com/repos/rrahn/seqan3/deployments","created_at":"2017-03-17T11:48:48Z","updated_at":"2017-03-15T02:18:16Z","pushed_at":"2018-03-27T19:36:41Z","git_url":"git://github.com/rrahn/seqan3.git","ssh_url":"git@github.com:rrahn/seqan3.git","clone_url":"https://github.com/rrahn/seqan3.git","svn_url":"https://github.com/rrahn/seqan3","homepage":"http://www.seqan.de","size":853,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"seqan:master","ref":"master","sha":"ac84295454839b30b24a2aec5ebb28614d688fbd","user":{"login":"seqan","id":1752144,"avatar_url":"https://avatars2.githubusercontent.com/u/1752144?v=4","gravatar_id":"","url":"https://api.github.com/users/seqan","html_url":"https://github.com/seqan","followers_url":"https://api.github.com/users/seqan/followers","following_url":"https://api.github.com/users/seqan/following{/other_user}","gists_url":"https://api.github.com/users/seqan/gists{/gist_id}","starred_url":"https://api.github.com/users/seqan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seqan/subscriptions","organizations_url":"https://api.github.com/users/seqan/orgs","repos_url":"https://api.github.com/users/seqan/repos","events_url":"https://api.github.com/users/seqan/events{/privacy}","received_events_url":"https://api.github.com/users/seqan/received_events","type":"Organization","site_admin":false},"repo":{"id":55410078,"name":"seqan3","full_name":"seqan/seqan3","owner":{"login":"seqan","id":1752144,"avatar_url":"https://avatars2.githubusercontent.com/u/1752144?v=4","gravatar_id":"","url":"https://api.github.com/users/seqan","html_url":"https://github.com/seqan","followers_url":"https://api.github.com/users/seqan/followers","following_url":"https://api.github.com/users/seqan/following{/other_user}","gists_url":"https://api.github.com/users/seqan/gists{/gist_id}","starred_url":"https://api.github.com/users/seqan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seqan/subscriptions","organizations_url":"https://api.github.com/users/seqan/orgs","repos_url":"https://api.github.com/users/seqan/repos","events_url":"https://api.github.com/users/seqan/events{/privacy}","received_events_url":"https://api.github.com/users/seqan/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/seqan/seqan3","description":"The modern C++ library for sequence analysis. Contains version 3 of the library and API docs.","fork":false,"url":"https://api.github.com/repos/seqan/seqan3","forks_url":"https://api.github.com/repos/seqan/seqan3/forks","keys_url":"https://api.github.com/repos/seqan/seqan3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seqan/seqan3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seqan/seqan3/teams","hooks_url":"https://api.github.com/repos/seqan/seqan3/hooks","issue_events_url":"https://api.github.com/repos/seqan/seqan3/issues/events{/number}","events_url":"https://api.github.com/repos/seqan/seqan3/events","assignees_url":"https://api.github.com/repos/seqan/seqan3/assignees{/user}","branches_url":"https://api.github.com/repos/seqan/seqan3/branches{/branch}","tags_url":"https://api.github.com/repos/seqan/seqan3/tags","blobs_url":"https://api.github.com/repos/seqan/seqan3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seqan/seqan3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seqan/seqan3/git/refs{/sha}","trees_url":"https://api.github.com/repos/seqan/seqan3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seqan/seqan3/statuses/{sha}","languages_url":"https://api.github.com/repos/seqan/seqan3/languages","stargazers_url":"https://api.github.com/repos/seqan/seqan3/stargazers","contributors_url":"https://api.github.com/repos/seqan/seqan3/contributors","subscribers_url":"https://api.github.com/repos/seqan/seqan3/subscribers","subscription_url":"https://api.github.com/repos/seqan/seqan3/subscription","commits_url":"https://api.github.com/repos/seqan/seqan3/commits{/sha}","git_commits_url":"https://api.github.com/repos/seqan/seqan3/git/commits{/sha}","comments_url":"https://api.github.com/repos/seqan/seqan3/comments{/number}","issue_comment_url":"https://api.github.com/repos/seqan/seqan3/issues/comments{/number}","contents_url":"https://api.github.com/repos/seqan/seqan3/contents/{+path}","compare_url":"https://api.github.com/repos/seqan/seqan3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seqan/seqan3/merges","archive_url":"https://api.github.com/repos/seqan/seqan3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seqan/seqan3/downloads","issues_url":"https://api.github.com/repos/seqan/seqan3/issues{/number}","pulls_url":"https://api.github.com/repos/seqan/seqan3/pulls{/number}","milestones_url":"https://api.github.com/repos/seqan/seqan3/milestones{/number}","notifications_url":"https://api.github.com/repos/seqan/seqan3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seqan/seqan3/labels{/name}","releases_url":"https://api.github.com/repos/seqan/seqan3/releases{/id}","deployments_url":"https://api.github.com/repos/seqan/seqan3/deployments","created_at":"2016-04-04T12:39:15Z","updated_at":"2018-04-01T07:18:29Z","pushed_at":"2018-04-04T18:12:50Z","git_url":"git://github.com/seqan/seqan3.git","ssh_url":"git@github.com:seqan/seqan3.git","clone_url":"https://github.com/seqan/seqan3.git","svn_url":"https://github.com/seqan/seqan3","homepage":"http://www.seqan.de","size":714,"stargazers_count":25,"watchers_count":25,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":22,"mirror_url":null,"archived":false,"open_issues_count":67,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":22,"open_issues":67,"watchers":25,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/seqan/seqan3/pulls/224"},"html":{"href":"https://github.com/seqan/seqan3/pull/224"},"issue":{"href":"https://api.github.com/repos/seqan/seqan3/issues/224"},"comments":{"href":"https://api.github.com/repos/seqan/seqan3/issues/224/comments"},"review_comments":{"href":"https://api.github.com/repos/seqan/seqan3/pulls/224/comments"},"review_comment":{"href":"https://api.github.com/repos/seqan/seqan3/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/seqan/seqan3/pulls/224/commits"},"statuses":{"href":"https://api.github.com/repos/seqan/seqan3/statuses/852d61edb5c6b66bc72fb48ad76ac633169d8a9c"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"rrahn"}}