Re: [Cbor] A CBOR tag for alternatives/unions, request for comments

Emile Cormier <emile.cormier.jr@gmail.com> Wed, 23 February 2022 15:06 UTC

Return-Path: <emile.cormier.jr@gmail.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 479083A107D for <cbor@ietfa.amsl.com>; Wed, 23 Feb 2022 07:06:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kSJV0dqfvcCy for <cbor@ietfa.amsl.com>; Wed, 23 Feb 2022 07:06:48 -0800 (PST)
Received: from mail-yb1-xb31.google.com (mail-yb1-xb31.google.com [IPv6:2607:f8b0:4864:20::b31]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D7A2E3A1070 for <cbor@ietf.org>; Wed, 23 Feb 2022 07:06:48 -0800 (PST)
Received: by mail-yb1-xb31.google.com with SMTP id e140so48537470ybh.9 for <cbor@ietf.org>; Wed, 23 Feb 2022 07:06:48 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=YEyM74mC6apGED/lfR8rp57Lc8czTOTj0uP88VsviE8=; b=KvsROMoBS/DqfyTS1GQCywQSAEJ4lKU8+ZLWc3XJEKxOL6tl+VtPdb4G2qDDOQLMup No5FYM2pDp+0B6r7lwrb5iIG9D5eYur+5CA6hfg6co6Hw8ClQXBDsKQzQBgefQKM/ETy BIFjePfZ9R4HR2CoBG194aF/B+0v9tS2439DRiDxS24GPHU+0nq/hD3UGbTZnBWnZUR5 1kFqFTRdqdO4JMCT2wRT5jELeKUMoVhGXsgjIulyJDC8jO0vJuxf/NHI8vceuYwMLvnc YtfGBkhPyRURUX5bCeU6qvrfJfyUunxhMsHwjD554V8rA7pz6XthR6iE4TnqEgjoOgzh nyRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=YEyM74mC6apGED/lfR8rp57Lc8czTOTj0uP88VsviE8=; b=dSH4XpV167pT0U7kpdUCGMsaUgE9DL+tbMZmZYHtWZgleFToDnV0PhVay56gE6GRx/ 3Fym5joVe8HGuy4OwhKfCTOmHBkYu92JVTcC0RvBtu87lt2i+2DUAUIN0kU+5DD5x9kK A2DBbWJW9UZM6CruTRmXK+LYNJ8b87SmYYf1fjJaNsy+lTv3Ygb1mSdnKMV9K//9q5CN TxBT4sIJyXQlzP7eoCHUn8N2m9qMii0rbq23IHpY9F3b5frecL+IZyrgtRxHEAET/5Nn Cennj8Wezwj4G5cOEbH4e4j68ABLm7NkUh5MyMfaFGDPkCp9+kqAPDnM0WyuKyHhXYHK nb3g==
X-Gm-Message-State: AOAM533vI/hPEwAuZRgqdHAMTrsrPfjey0m5YmkiXDJg2ZPCAeL4xPmW /qe8K2MLjrMaOkDxte9lgDDyeGEIPueyfmIzxxCG0XDB
X-Google-Smtp-Source: ABdhPJwpdNYJxGHhwAZiR7fp+q2pKYgM/6UwWTpKQGvBgNe3KTTE6/c6ByZLrBJRfPvJzj2Wg2KYd6ADzIah1Gt4Zhc=
X-Received: by 2002:a25:287:0:b0:61d:8134:966 with SMTP id 129-20020a250287000000b0061d81340966mr138872ybc.217.1645628807659; Wed, 23 Feb 2022 07:06:47 -0800 (PST)
MIME-Version: 1.0
References: <9300a81abc33a45a9f3c7c1c62da88908280e54a.camel@well-typed.com> <1D3EF118-0223-43BC-81B2-369D4515DB21@tzi.org> <1ce2c092d3214d5fdce59435fc10b084c1ba48ca.camel@well-typed.com> <DFCBE61C-35B2-42A2-8D1A-A633CF939154@tzi.org> <2e10456c5791a422bf7218e7b84051f2b7121b66.camel@well-typed.com> <CAKoRMYGcwrhVWd-J3dX75WZfc+T_oyb6NCUNaeCXMW5_-VYdTw@mail.gmail.com> <52EDB93C-827A-465F-B644-51B3EF590D06@tzi.org> <C9D895BB-40E6-431F-958F-AC031DE4FB58@tzi.org> <CAKoRMYG9X0JF4ehkMc30_UNi0JtT2YMeG4RgxznS6O3Di6pkRA@mail.gmail.com> <CAKoRMYHwewaYxkX=CsfETBbdV7c9U97jfbd9xg=PyrMX5vJhnA@mail.gmail.com> <3B3B7EF0-152B-4015-8485-B204F7AEFFBC@tzi.org> <CAKoRMYFbEG=TkuZPPOiXv2DjEh23Ujd_Q44kQqiWPGc_0GMTuQ@mail.gmail.com> <CAKoRMYHnF6fGJp1dTrJnRHFTBOhreLRwzR_=cCckW1nBXOEz0A@mail.gmail.com> <E8A9E016-2248-4BB9-9864-C6C7D52A4AE5@tzi.org> <CAKoRMYE+gmWyCL9zYDa-O-c3KV_iuzgYuS+Q4fi=U7VHDNDtkQ@mail.gmail.com> <CAKoRMYFdAr1YY3mtmY0NU5X9Bk8_4WYh7bC0CtXpZc3toLSu8g@mail.gmail.com> <7FA54553-5421-4C45-B7DD-E9B2D379F46F@tzi.org> <CAKoRMYH3MTMi_tX5KHF-O-DTKzopiGqe3fi6XjkPaGCM4823OQ@mail.gmail.com> <7dfd62ccb6c089af90c90f26a8945f23232ecbc1.camel@well-typed.com> <CAKoRMYEOo1Gqfc4W4k3NOLKpFa97Q9YzLCm3r0PJ13V2HJPf3A@mail.gmail.com> <2BBF6463-FDB2-4A8A-B20D-7A1AD976A90D@tzi.org> <CAKoRMYFi8uo2GfHA9s1n+-rMO8Ja9=2qMMzjS9Z=F9r3LFozRQ@mail.gmail.com> <8EA89504-C176-4850-9BB8-C7E7206374FF@tzi.org> <CAKoRMYGmOa0hzEFsJh8kpz0bU5x56Yc9P=DBK-ghU83gXxPv7A@mail.gmail.com> <CAKoRMYGUvmxufQUVyvX2mciq5LCmV0Nz-uE2MJn54GDBB+9DRw@mail.gmail.com> <CAKoRMYF_19V6mu4S9GVqfiNzyQVvvOzX6eYwHp_DtZQoG0xTKg@mail.gmail.com> <4B47F4D7-ADE3-4A22-8A5B-97F4E5FCD933@tzi.org> <CAM70yxACa4ZgOojHLMRv+9Bpuv7dPFtupm+tnrnDZC_i_Dsr8g@mail.gmail.com> <EB822234-89C2-4CFA-8807-2BD2E97D1E60@tzi.org>
In-Reply-To: <EB822234-89C2-4CFA-8807-2BD2E97D1E60@tzi.org>
From: Emile Cormier <emile.cormier.jr@gmail.com>
Date: Wed, 23 Feb 2022 11:06:36 -0400
Message-ID: <CAM70yxAG_rMc8ANWgFvyAao_G5cLNOEL0mrfD8tLmJVxtn_8SA@mail.gmail.com>
To: Carsten Bormann <cabo@tzi.org>
Cc: Michael Peyton Jones <michael.peyton-jones@iohk.io>, Duncan Coutts <duncan@well-typed.com>, cbor@ietf.org, Jared Corduan <jared.corduan@iohk.io>, Alexander Byaly <alexander.byaly@iohk.io>
Content-Type: multipart/alternative; boundary="00000000000083444205d8b0d0a5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/FHZVlKageQckHle5s3TWHq_qZrU>
Subject: Re: [Cbor] A CBOR tag for alternatives/unions, request for comments
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 23 Feb 2022 15:06:54 -0000

On Wed, Feb 23, 2022 at 10:48 AM Carsten Bormann <cabo@tzi.org> wrote:

> I’m not currently proposing to standardize this, but the cbor diagnostic
> tools support a transform to tunnel CBOR data items through JSON [0]:
>
> $ echo "122(h'1234')" | diag2cbor.rb | cbor2json.rb -j
> {
>   "@@!t122": {
>     "@@!b": "EjQ"
>   }
> }
>
> This works by hijacking JSON object keys starting with @@!; I’m not sure
> the code handles all cases so we have achieved full transparency yet, but
> that is a SMOP [1].
>
> Grüße, Carsten
>
> [0]: https://github.com/cabo/cbor-diag/blob/master/lib/cbor-transform-j.rb
> [1]: SMOP = Small matter of programming
>

I was thinking something as simple as:

[<alt_index>, <value>]

where <alt_index> is a JSON number and <value> is the datum transcoded to
JSON. However, transcoding this back to CBOR would be lossy without any
other context.