|
@@ -1,17 +1,15 @@
|
|
|
use anchor_lang::prelude::*;
|
|
|
-use some_external_program;
|
|
|
|
|
|
-declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS");
|
|
|
+declare_id!("Generics111111111111111111111111111111111111");
|
|
|
|
|
|
-/// This is an example program used for testing
|
|
|
#[program]
|
|
|
-pub mod example_program {
|
|
|
+pub mod generics {
|
|
|
use super::*;
|
|
|
|
|
|
pub fn generic(
|
|
|
ctx: Context<GenericCtx>,
|
|
|
- generic_field: GenericType::<u32, u64, 10>
|
|
|
- ) -> Result<()>{
|
|
|
+ generic_field: GenericType<u32, u64, 10>,
|
|
|
+ ) -> Result<()> {
|
|
|
ctx.accounts.generic_acc.data = generic_field;
|
|
|
Ok(())
|
|
|
}
|
|
@@ -28,7 +26,7 @@ pub struct GenericCtx<'info> {
|
|
|
|
|
|
#[account]
|
|
|
pub struct GenericAccount {
|
|
|
- pub data: GenericType<u32, u64, 10>
|
|
|
+ pub data: GenericType<u32, u64, 10>,
|
|
|
}
|
|
|
|
|
|
#[derive(AnchorSerialize, AnchorDeserialize, Clone)]
|
|
@@ -40,7 +38,7 @@ where
|
|
|
pub gen1: T,
|
|
|
pub gen2: U,
|
|
|
pub gen3: GenericNested<u32, U>,
|
|
|
- pub gen4: GenericNested<T, some_external_program::Baz>,
|
|
|
+ pub gen4: GenericNested<T, external::Baz>,
|
|
|
pub gen5: GenericNested<T, U>,
|
|
|
pub gen6: GenericNested<u32, u64>,
|
|
|
pub gen7: GenericNested<T, GenericNested<T, U>>,
|
|
@@ -71,10 +69,7 @@ where
|
|
|
U: AnchorSerialize + AnchorDeserialize,
|
|
|
{
|
|
|
Unnamed(T, U),
|
|
|
- Named {
|
|
|
- gen1: T,
|
|
|
- gen2: U,
|
|
|
- },
|
|
|
+ Named { gen1: T, gen2: U },
|
|
|
Struct(GenericNested<T, U>),
|
|
|
Arr([T; N]),
|
|
|
}
|