package org.libspark.common.ability { /** * 自身の複製を生成することができるオブジェクト. */ public interface IClonable { /** * このオブジェクトと等しい新しいオブジェクト. * * Ensure: result != null * Ensure: result != this * Ensure: Objects.equal(result, this) == true */ function get clone():IClonable; /** * このオブジェクトと再帰的に等しい新しいオブジェクト. * * Ensure: result != null * Ensure: result != this * Ensure: Objects.deepEqual(result, this) == true */ function get deepClone():IClonable; } }